Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.06.14;
Скачать: CL | DM;

Вниз

Save/Load Tlist   Найти похожие ветки 

 
Nameziz   (2009-04-25 15:52) [0]

имеется наследник TList - TListA список записей типа:

PItemA = ^TItemA;
TItemA = record
 Id: Integer;
 Name: string;
end;

Вручную написал методы сохранения/чтения списка в файл. Вот код:


procedure TListA.LoadFromFile(const FileName: string);
var
 i, L: Integer;
 P: PItemA;
 S: TStream;
begin
 S := TFileStream.Create(FileName, fmOpenRead);
 with S do
   try
     while Position < Pred(Size) do
     begin
       New(P);
       with P^ do
       begin
         Read(Id, SizeOf(Id));
         Read(L, SizeOf(L));
         Read(Name, L);
         Add(Id, Name);
       end;
     end;
   finally
     Free;
   end;
end;



procedure TListA.SaveToFile(const FileName: string);
var
 i, L: Integer;
 P: PItemA;
 S: TStream;
begin
 S := TFileStream.Create(FileName, fmCreate);
 with S do
   try
     for i := 0 to Pred(Count) do
     begin
       P := PItemA(List[i]);
       with P^ do
       begin
         Write(Id, SizeOf(Id));
         L := Length(Name);
         Write(L, SizeOf(L));
         Write(Name, L);
       end;
     end;
   finally
     Free;
   end;
end;


Список вроде как и сохраняется и загружается, но вот только при выводе полей (касается текстового Name) какой-либо записи списка дописываюся лишние символы. В чем может быть ошибка?


 
MBo ©   (2009-04-25 16:00) [1]

Write(PChar(Name)^, L);
или
if L > 0 then Write(Name[1], L);
аналогично со чтением



Страницы: 1 вся ветка

Текущий архив: 2009.06.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
4-1210672933
Nil
2008-05-13 14:02
2009.06.14
Прочитать состояние вывода LPT порта через usbprint.sys


15-1239376021
мда, серьезные люди...
2009-04-10 19:07
2009.06.14
Почему я не могу попасть на форумы с сохраненных ранее ссылок?


2-1240863513
ForeverStudent
2009-04-28 00:18
2009.06.14
Фильтрация данных


2-1240598283
buzb
2009-04-24 22:38
2009.06.14
Вопрос о Drag-n-Drop


2-1240600979
kami
2009-04-24 23:22
2009.06.14
Преимущества нескольких соединений (TCP или UDP ) над одним