以二进制模式访问文本文件

时间:2014-04-19 12:07:06

标签: delphi

我有包含“记录”的大文本文件(不适合内存)。一条记录包含4个文本行。但是,有时候这些线条太长而且会分裂。因此,记录ca有超过4行。

澄清:请注意,“记录”不是真实记录。是文字行。如果“记录”中有4行或更多行,我不知道每行和(如前所述)多长时间。 记录可以是这样的:

@ human text text text text text      <------ always starts with @
AGCTACGTAGCTACGTAGCTACGCTACGT
+ text text text text text            <------ always starts with +
A!B@CDEF+$DG++DAG@                    <------ unfortunately @ and + can also appear (randomly) in this row.

最初我需要按顺序逐个读取该文件中的记录。这很简单。但后来我需要根据文件中该记录的地址随机访问记录 示例:GetRecord(IOAddress:Cardinal)

所以,我正在考虑创建一个Cardinals(或Int64)矩阵,并在其中存储每个记录开始的地址。

不幸的是,TextFile没有Position属性(如在TFileStream.Position或Seek中)。 任何想法如何轻松实现这样的目标?


0 个答案:

没有答案