如何有效地阅读Delphi中许多文件的最初几行

如何有效地阅读Delphi中许多文件的最初几行,第1张

概述我的程序中有一个“查找文件”功能,可以找到我的程序读取的带有.ged后缀的文本文件.我在类似于资源管理器的窗口中显示找到的结果,如下所示: 我使用标准的FindFirst / FindNext方法,这非常有效.上面显示的584个文件可在几秒钟内找到并显示. 我现在要做的是在显示屏上添加两列,显示每个文件中包含的“Source”和“Version”.此信息通常位于每个文件的前10行内,如下所示: 1 我的程序中有一个“查找文件”功能,可以找到我的程序读取的带有.ged后缀的文本文件.我在类似于资源管理器的窗口中显示找到的结果,如下所示:

我使用标准的FindFirst / FindNext方法,这非常有效.上面显示的584个文件可在几秒钟内找到并显示.

我现在要做的是在显示屏上添加两列,显示每个文件中包含的“Source”和“Version”.此信息通常位于每个文件的前10行内,如下所示:

1 SOUR FTM2 VERS Family Tree Maker (20.0.0.368)

现在我自己解析这个问题没有问题,这不是我要问的问题.

我需要帮助的只是如何最快速地从这些文件加载​​前10行,以便我可以解析它们.

我试图做一个StringList.LoadFromfile,但加载大文件需要花费太多时间,例如1 MB以上的文件.

由于我只需要前10行左右,我最好如何获得它们?

我正在使用Delphi 2009,我的输入文件可能是也可能不是Unicode,所以这需要适用于任何编码.

跟进:谢谢Antonio,

我最终做了这个工作正常:

var  CurfileStream: TStream;  Buffer: TBytes;  Value: string;  EnCoding: TEnCoding;try  CurfileStream := TfileStream.Create(folder + filename,fmOpenRead);  SetLength(Buffer,256);  CurfileStream.Read(Buffer[0],256);  TEnCoding.GetBufferEnCoding(Buffer,EnCoding);  Value := EnCoding.GetString(Buffer);  ...  (parse through Value to get what I want)  ...finally  CurfileStream.Free;end;
解决方法 使用TfileStream并使用Read方法读取所需的字节数.以下是读取位图信息的示例,该位图信息也存储在文件的开头.

http://www.delphidabbler.com/tips/19

总结

以上是内存溢出为你收集整理的如何有效地阅读Delphi中许多文件的最初几行全部内容,希望文章能够帮你解决如何有效地阅读Delphi中许多文件的最初几行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1277822.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存