У меня есть две процедуры.
Первая добавляет в файл запись:
Procedure Add_Rec(app:RecType;way:string);
var
f:FileType;
recc:RecType;
i:integer;
begin
Assign(f,way);
reset(f);
while not(Eof(f)) do
begin
read(f,recc);
inc(i);
end;
close(f);
rewrite(f);
writeln('---',i);
Seek(f,i);
write(f,app);
close(f);
end;
Причем делать так :
reset(f);
while not(Eof(f)) do
begin
read(f,recc);
inc(i);
end;
close(f);
вместо того чтобы использовать Seek(f, FileSize(f)) мне приходится, так как FileSize всегда возвращает 0(именно в этой процедуре, в остальных работает нормально)
Вторая выводит на экран содержимое файла:
procedure output(way:string);
var
f:filetype;
rec:RecType;
i:integer;
begin
assign(f,way);
reset(f);
if filesize(f) > 0 then
for i:=1 to filesize(f) do
begin
read(f,rec);
writeln('Запись ',i,':');
writeln(' Марка: ',rec.model);
writeln(' Цвет: ',rec.color_car);
writeln(' Гос. номер: ',rec.state_number);
writeln(' Владелец: ',rec.owner);
end
else
writeln('Файл пуст.');
close(f);
end;
Вот результат:
Все записи кроме последней становятся пустыми. Что происходит? Я никак не могу понять.