
21.11.2013, 16:21
|
 |
Профессионал
|
|
Регистрация: 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;
|