Цитата:
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);
...