Вот пример:
| Код | procedure TForm1.Button1Click(Sender: TObject); var fs: TFileStream; ms: TMemoryStream; iTest: Char; Mode: Word; begin if not OpenDialog1.Execute then Exit;
if not FileExists(OpenDialog1.FileName) then Mode := fmCreate or fmOpenWrite else Mode := fmOpenWrite;
try fs := TFileStream.Create(OpenDialog1.FileName, Mode); ms := TMemoryStream.Create; iTest := 'a'; ms.Write(iTest, SizeOf(Char)); iTest := 'b'; ms.Write(iTest, SizeOf(Char)); ms.Seek(0, soFromBeginning); //Пытаемся записать со второй позиции if fs.Size >= 2 then fs.Seek(2, soFromBeginning); fs.CopyFrom(ms, ms.Size); finally FreeAndNil(ms); FreeAndNil(fs); end; end; | |