Показать сообщение отдельно
  #11  
Старый 28.09.2009, 16:10
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

Цитата:
FName: Array[0..999] of String;
А откуда программе знать, какой длины строка? строки и другие динамические объекты пишутся так:
Код:
var i, l:integer;
...
for i:=0 to 999 do
  begin
    l:=Length(Inf.FName[i]);
    F.WriteBuffer(l, SizeOf(Integer)); //записываем длину i-той строки
    F.WriteBuffer(Inf.FName[i][1], l); //записываем строку
    F.WriteBuffer(Inf.FUpd[i], SizeOf(Boolean));
  end;
...
читается точно наоборот. Обращаем внимание на то, что запись и чтение ведется с [1] элемента строки, и перед записью в строку нужно изменить ее длину:
Код:
...
F.ReadBuffer(l, SizeOf(Integer));
SetLength(Inf.FName[i], l);
F.ReadBuffer(nf.FName[i][1], l);
...
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием