2

何か提案してください。

ファイルが 500 KB を超える場合、最後の 500 KB のファイルを UniSynEdit/SynEdit にロードするにはどうすればよいですか?

ありがとう!!!

4

2 に答える 2

2

選択肢の 1 つは、ファイルの最後の 500 KB を一時ファイルにコピーしてから、synEdit に一時ファイルの処理を依頼することです。

于 2011-06-08T13:53:20.750 に答える
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 または 1 文字あたりの可変バイト数を使用するものとしてエンコードされている場合、ファイル内の任意の位置にジャンプするのは安全ではないことに注意してください。2 バイト シーケンスの後半を表すバイトにジャンプすると、読み取った後続のすべての文字が正しく解釈されない可能性があります。ANSI および UTF-16 ファイルにはそのような危険はありません。

于 2011-06-08T13:54:07.850 に答える