请建议我。
如果文件超过500 KB,如何将最后500 KB的文件加载到UniSynEdit / SynEdit中?
感谢!!!
答案 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文件没有这种危险。