如何有效地阅读Delphi中许多文件的最初几行
发布时间:2020-12-15 10:07:34 所属栏目:大数据 来源:网络整理
导读:我的程序中有一个“查找文件”功能,可以找到我的程序读取的带有.ged后缀的文本文件.我在类似于资源管理器的窗口中显示找到的结果,如下所示: 我使用标准的FindFirst / FindNext方法,这非常有效.上面显示的584个文件可在几秒钟内找到并显示. 我现在要做的是在
我的程序中有一个“查找文件”功能,可以找到我的程序读取的带有.ged后缀的文本文件.我在类似于资源管理器的窗口中显示找到的结果,如下所示:
我使用标准的FindFirst / FindNext方法,这非常有效.上面显示的584个文件可在几秒钟内找到并显示. 我现在要做的是在显示屏上添加两列,显示每个文件中包含的“Source”和“Version”.此信息通常位于每个文件的前10行内,如下所示: 1 SOUR FTM 2 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |