何か提案してください。
ファイルが 500 KB を超える場合、最後の 500 KB のファイルを UniSynEdit/SynEdit にロードするにはどうすればよいですか?
ありがとう!!!
選択肢の 1 つは、ファイルの最後の 500 KB を一時ファイルにコピーしてから、synEdit に一時ファイルの処理を依頼することです。
を作成し、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 または 1 文字あたりの可変バイト数を使用するものとしてエンコードされている場合、ファイル内の任意の位置にジャンプするのは安全ではないことに注意してください。2 バイト シーケンスの後半を表すバイトにジャンプすると、読み取った後続のすべての文字が正しく解釈されない可能性があります。ANSI および UTF-16 ファイルにはそのような危険はありません。