![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Подскажите, уважаемые, никак не получается, в делфи новичек...
В общем переделываю чужую программу.. там идет сохранение буфера в файл, вот такой кусок Код:
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 байт |