如何在覆盖现有文件之前使用 TFileStream 截断它?
How can I use TFileStream to truncate the existing file before overwriting it?
我正在使用下面的代码写入现有文件,但内容被追加。清空文件并覆盖它需要哪些 TFileStream 选项?
procedure TUtilitiesForm.btnSaveClick(Sender: TObject);
var fs: TFileStream;
begin
fs := TFileStream.Create(FileNameEdit1.Text, fmOpenWrite);
fs.Seek(0,fsFromEnd);
mmoDDL.Lines.SaveToStream(fs);
fs.Free;
end;
使用 fsFromEnd
可以将数据追加到现有文件的末尾,另一方面 fsFromBeginning
从头开始但不会截断文件。
从 fmOpenWrite
更改为 fmCreate
procedure TUtilitiesForm.btnSaveClick(Sender: TObject);
var fs: TFileStream;
begin
fs := TFileStream.Create(FileNameEdit1.Text, fmCreate);
try
mmoDDL.Lines.SaveToStream(fs);
finally
FreeAndNil(fs);
end;
end;
我正在使用下面的代码写入现有文件,但内容被追加。清空文件并覆盖它需要哪些 TFileStream 选项?
procedure TUtilitiesForm.btnSaveClick(Sender: TObject);
var fs: TFileStream;
begin
fs := TFileStream.Create(FileNameEdit1.Text, fmOpenWrite);
fs.Seek(0,fsFromEnd);
mmoDDL.Lines.SaveToStream(fs);
fs.Free;
end;
使用 fsFromEnd
可以将数据追加到现有文件的末尾,另一方面 fsFromBeginning
从头开始但不会截断文件。
从 fmOpenWrite
更改为 fmCreate
procedure TUtilitiesForm.btnSaveClick(Sender: TObject);
var fs: TFileStream;
begin
fs := TFileStream.Create(FileNameEdit1.Text, fmCreate);
try
mmoDDL.Lines.SaveToStream(fs);
finally
FreeAndNil(fs);
end;
end;