Требуется сохранять данные в типизированный файл, а также считывать информацию из него.
Вот структура записи:
type
phonebook=record
firstname:string[255];
lastname:string[255];
phonenumber:string[255];
adress:string[255];
end;
Ну и описание:
var
Form1: TForm1;
pb:phonebook;
F:File of phonebook;
i,j,n,k:integer;
Имеется сохранение в файл:
AssignFile(F, 'pbook.dat');
Rewrite(f);
n:=0;
for i:=1 to StringGrid1.RowCount do
begin
pb.firstname:=StringGrid1.Cells[1,i];
pb.lastname:=StringGrid1.Cells[2,i];
pb.phonenumber:=StringGrid1.Cells[3,i];
pb.adress:=StringGrid1.Cells[4,i];
Write(F,pb);
n:=n+1;
Seek(F,n);
end;
CloseFile(F);
А также чтение и заполнение
StrngGrid'а данными:
AssignFile(F, 'pbook.dat');
Reset(F);
n:=0;
while not eof(F) do
begin
for i:=1 to StringGrid1.RowCount do
begin
with pb do
begin
Seek(F,n);
Read(F,pb);
StringGrid1.Cells[1,i]:=firstname;
StringGrid1.Cells[2,i]:=lastname;
StringGrid1.Cells[3,i]:=phonenumber;
StringGrid1.Cells[4,i]:=adress;
StringGrid1.RowCount:=StringGrid1.RowCount+1;
inc(n);
end;
end;
end;
А проблема заключается в том, что не работает заполнение, да и мне кажется, что считывание тоже, хотя проверял без цикла, в ручную, то в текстбокс все выводилось, а тут не хочет. Также, выводит ошибку на Read(F,pb); - непредвиденный конец файла, хотя стоит проверка. Что я делаю не так?