Показать сообщение отдельно
  #2  
Старый 21.11.2013, 16:21
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Примерно так:
Код:
var
.....
  len: Integer;
  s: AnsiString;
begin
.....

  // Сохраняем
  FS := TFileStream.Create(Param1 + '.dat', fmCreate);
  FS.WriteBuffer(template1Length, SizeOf(template1Length)); // Сначала записываем размер даных
  FS.WriteBuffer(bufferTemplate1^, template1Length); // А потом сами данные

  s := 'Вася';
  len := Length(s);
  FS.WriteBuffer(len, SizeOf(len)); // Сначала записываем длину строки
  FS.WriteBuffer(Pointer(s)^, len); // А потом саму строку
  FS.Free;
.....

  // Считываем
  FS := TFileStream.Create(Param1 + '.dat', fmOpenRead);
  FS.ReadBuffer(template1Length, SizeOf(template1Length)); // Сначала считываем размер даных
  GetMem(bufferTemplate1, template1Length); // Резервируем память под буфер требуемого размера
  FS.ReadBuffer(bufferTemplate1^, template1Length); // А потом считываем сами данные

  FS.ReadBuffer(len, SizeOf(len)); // Сначала считываем длину строки
  SetLength(s, len); // Резервируем память под строку требуемого размера
  FS.ReadBuffer(Pointer(s)^, len); // А потом считываем саму строку
  FS.Free;
Ответить с цитированием