Показать сообщение отдельно
  #2  
Старый 08.11.2010, 23:39
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Я бы делал через поток.

Код:
var
  F : TFileStream;
  P : Pointer;
  Pz, Sz : Integer;
  D : String;
begin
  F := TFileStream.Create('my_file.txt',fmOpenread Or fmOpenWrite);
  Pz := F.Size div 2;
  Sz := F.Size - Pz;
  GetMem(P,Sz);
  F.seek(Pz,soFromBegining);
  F.ReadBuffer(P^,Sz);
  F.seek(Pz,soFromBegining);
  D := 'New data';
  F.WriteBuffer(D[1],Length(D));
  F.WriteBuffer(P^,Sz);
  FreeMem(P,Sz);
  F.Free;
end;
Ответить с цитированием