Class: DBF::Memo::Foxpro

Inherits:
Base
  • Object
show all
Defined in:
lib/dbf/memo/foxpro.rb

Constant Summary collapse

FPT_HEADER_SIZE =
512

Constants inherited from Base

Base::BLOCK_HEADER_SIZE, Base::BLOCK_SIZE

Instance Method Summary collapse

Methods inherited from Base

#close, #closed?, #get, #initialize, open

Constructor Details

This class inherits a constructor from DBF::Memo::Base

Instance Method Details

#build_memo(start_block) ⇒ Object

:nodoc:



8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/dbf/memo/foxpro.rb', line 8

def build_memo(start_block) # :nodoc:
  data.seek offset(start_block)
  block = data.read(block_size)
  return nil unless block

  # memo_size is nil when the block header is truncated (< 8 bytes)
  memo_type, memo_size, memo_string = block.unpack('NNa*')
  return nil unless memo_type == 1 && memo_size.to_i.positive?

  read_memo_content(memo_string, memo_size)
rescue IOError, SystemCallError, RangeError
  nil
end