Подскажите, уважаемые, никак не получается, в делфи новичек...
В общем переделываю чужую программу.. там идет сохранение буфера в файл, вот такой кусок
Код:
var bufferTemplate1 : PChar;
template1Length, pTransfered : integer;
FS: TFileStream;
pTemplate : pointer;
begin
//Сохраняю шаблон в bufferTemplate1
template1Length := Bsdk_Template_GetSize(pTemplate);
GetMem(bufferTemplate1, template1Length);
result := Bsdk_Template_Save(pTemplate, bufferTemplate1, template1Length, pTransfered);
// после этой функции, в bufferTemplate1 содержаться данные
//Сохраняю буфер bufferTemplate1 в файл Param1 + '.dat'
FS := TFileStream.Create(Param1 + '.dat', fmCreate);
FS.WriteBuffer(bufferTemplate1^, template1Length);
FS.Free;
FreeMem(bufferTemplate1);
данные из bufferTemplate1 записываются в файл. Мне надо чтобы к этим данным еще записывалась кое-какая информация, ну например имя "Вася", "Петя", и соответственно потом это дело загрузить в память обратно.
Делал через record, не получается:
Код:
TTemplate = record
Name: string[5];
Template: PChar; // тут пробовал разные варианты, не помогает
end;
var
tTempl : TTemplate;
FS: TFileStream;
pTemplate : pointer;
begin
//Сохраняю шаблон в bufferTemplate1
template1Length := Bsdk_Template_GetSize(pTemplate);
// SetLength(tTempl.Template, '2696');
GetMem(tTempl.Template, template1Length);
result := Bsdk_Template_Save(pTemplate, tTempl.Template, template1Length, pTransfered);
tTempl.name:= 'Вася';
FS := TFileStream.Create('c:\temp\test.dat', fmCreate);
FS.WriteBuffer(tTempl, SizeOf(TTemplate));
FS.Free;
FreeMem(tTempl.Template);
// записывается только 8-10 байт, хотя должно быть не менее 2696 байт