如何解决在Delphi 7中加载CR仅分隔文件文本时的问题?

前端之家收集整理的这篇文章主要介绍了如何解决在Delphi 7中加载CR仅分隔文件文本时的问题?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个大文本文件(大约100MB),每行由CR字符分隔,而不是CRLF.

我尝试使用TStringList.LoadFromFile()或ReadLn(F,..)逐行读取此文本文件,但这两种方法都要求行由CRLF分隔.

你有没有有效和快速方法来阅读这种文本文件

谢谢.

PS:我使用的是Delphi 7.

解决方法

这应该做到这一点.
将文本文件读入内存流.
然后用内容填充字符串列表.
textList.Text接受CR,LF和CRLF的任意组合以形成一条线.
  1. function MemoryStreamToString( M : TMemoryStream) : string;
  2. begin
  3. SetString( Result,PChar(M.Memory),M.Size div SizeOf(Char)); // Works in all Delphi versions
  4. end;
  5.  
  6. var
  7. memStream : TMemoryStream;
  8. textList : TStringList;
  9. begin
  10. textList := TStringList.Create;
  11. try
  12. memStream:= TMemoryStream.Create;
  13. try
  14. memStream.LoadFromFile('mytextfile.txt');
  15. textList.Text := MemoryStreamToString( memStream); // any combination of CR,LF,CRLF interprets as a line
  16. finally
  17. memStream.Free;
  18. end;
  19. // do something with textList
  20.  
  21. finally
  22. textList.Free;
  23. end;
  24.  
  25. end;

猜你在找的Delphi相关文章