德尔福。 SynEdit - 加载最后500 KB的文件

时间:2011-06-08 13:38:34

标签: delphi text load size synedit

请建议我。

如果文件超过500 KB,如何将最后500 KB的文件加载到UniSynEdit / SynEdit中?

感谢!!!

2 个答案:

答案 0 :(得分:2)

您可以选择将文件的最后500 KB复制到临时文件中,然后让synEdit处理临时文件。

答案 1 :(得分:2)

创建一个TFileStream并搜索要加载的位置,然后将该流传递给编辑控件。它应该从当前位置加载。

var
  stream: TStream;
begin
  stream := TFileStream.Create(filename, fmOpenRead);
  try
    stream.Seek(-500 * 1024, soEnd);
    edit.Lines.LoadFromStream(stream);
  finally
    stream.Free;
  end;
end;

请注意,如果文件编码为UTF-8或其他使用每个字符可变字节数的内容,则跳转到文件中的任意位置是不安全的。您可能会跳转到表示双字节序列的后半部分的字节,然后您读取的所有后续字符都可能被错误地解释。 ANSI和UTF-16文件没有这种危险。