我有包含“记录”的大文本文件(不适合内存)。一条记录包含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中)。 任何想法如何轻松实现这样的目标?