Lazarus:将小文本文件读入内存以逐行处理

时间:2015-08-04 15:17:11

标签: text-files lazarus

我要解析400个小文本文件(小于30 kb)。每个文件的行数从100到250不等。行长度从8个字符到大约1200个字符不等。

我现在的程序读取目录,依次打开每个文件,然后使用readln逐行解析每个文件。

我想要做的是将每个文件 *一次 读入内存,然后找一些 访问并解析每一行* ,同时整个文件在内存中。

有人可以建议哪种拉撒路功能最适合用来实现这个目标吗?

谢谢。

3 个答案:

答案 0 :(得分:1)

正如@ 500 - 提到的内部服务器错误,将每个文本文件加载到Stringlist中是最简单的方法。

MyList := TStringList.Create;
MyList.LoadFromFile('file.txt');

答案 1 :(得分:0)

如果您准备自己处理换行符,请将它们加载到TmemoryStream中。在内存流中,您可以一次访问一个字节,非常适合解析。

答案 2 :(得分:0)

@nepb完成后忘记释放MyList:

MyList := TStringList.Create;
MyList.LoadFromFile('file.txt');
//Do stuff with MyList
MyList.free;