我有一个很大的文本文件(大约 100MB),每行都用 CR 字符分隔,而不是 CRLF。
我尝试使用 TStringList.LoadFromFile() 或 ReadLn(F,..) 逐行读取此文本文件,但这两种方法都需要用 CRLF 分隔行。
你有什么高效、快速的方法来读取这种文本文件吗?
谢谢。
PS:我使用的是Delphi 7。
最佳答案
这应该可以做到。
将文本文件读入内存流。
然后用内容填充字符串列表。
textList.Text
接受 CR
、LF
和 CRLF
的任意组合来形成一行。
function MemoryStreamToString( M : TMemoryStream) : string;
begin
SetString( Result,PChar(M.Memory),M.Size div SizeOf(Char)); // Works in all Delphi versions
end;
var
memStream : TMemoryStream;
textList : TStringList;
begin
textList := TStringList.Create;
try
memStream:= TMemoryStream.Create;
try
memStream.LoadFromFile('mytextfile.txt');
textList.Text := MemoryStreamToString( memStream); // any combination of CR,LF,CRLF interprets as a line
finally
memStream.Free;
end;
// do something with textList
finally
textList.Free;
end;
end;
关于delphi - 在 Delphi 7 中加载仅 CR 分隔的文件文本时如何解决问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8614071/