Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.11.2013, 15:47
kti kti вне форума
Прохожий
 
Регистрация: 21.11.2013
Сообщения: 10
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Сохранение record в файл

Подскажите, уважаемые, никак не получается, в делфи новичек...
В общем переделываю чужую программу.. там идет сохранение буфера в файл, вот такой кусок
Код:
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 байт
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:18.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025