Помощь - Поиск - Пользователи - Календарь
Полная версия: База данных в типизированном файле
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
alexmilko
Ребята!!! Требуется помощь!!!! Программу я написал, но в ней есть ошибка(не могу сообразить, как ее исправить). Требуется создать типизированный файл записи, содержащий базу: название страны, ее площадь, число населения. Базу создал, записал в файл 'strani.dat'. Теперь требуется создать новый файл записи из исходного файла - только теперь добавляется новое поле - плотность население(то бишь число население, деленное на площадь страны). Надо скопировать поля в этот новый файл - вот тут и загвоздка - я уверен, что ошибка в тексте,выделенном курсивом. Поделитесь мыслями, нужно срочно доделать.













uses crt;
type
strani=record
naz:string[20];
sq:integer;
nas:integer;
end;
plotnost=record
naz:string[20];
sq:integer;
nas:integer;
pl:real;
end;
var
i,j,k:integer;
a:strani;
b:plotnost;
f:file of strani;
f1:file of plotnost;
begin
clrscr;
assign(f,'strani.dat');
rewrite(f);
writeln('Введите число записей');readln(k);
for i:=1 to k do
begin
with a do
begin
writeln('Название страны ');readln(naz);
writeln('Площадь ');readln(sq);
writeln('Число населения ');readln(nas);
write(f,a);
end;
end;
close(f);
assign(f1,'plotnost.dat');
rewrite(f1);
reset(f);
seek(f,0);
while not eof(f) do begin
read(f,a);
for i:=1 to k-1 do begin
b.naz:=a.naz;
b.sq:=a.sq;
b.nas:=a.nas;
b.pl:=(a.nas)/(a.sq);
write(f1,b);
end;end;
close(f1);
close(f);

reset(f1);
writeln('Новый файл содержит:');
seek(f1,0);
writeln('СТРАНА','ПЛОЩАДЬ':16,'НАСЕЛЕНИЕ':8,'ПЛОТНОСТЬ':18);
while not eof(f1) do
begin
read(f1,b);
with b do
writeln(naz:4,sq:15,nas:10,pl:16:2);
end;
close(f1);
readln;
end.











































Ozzя
   for i:=1 to k do begin
b.naz:=a.naz;
b.sq:=a.sq;
b.nas:=a.nas;
b.pl:=(a.nas)/(a.sq);
seek(f1,i-1);
write(f1,b);
Гость
Цитата(Ozzя @ 7.06.2007 14:24) *

   for i:=1 to k do begin
b.naz:=a.naz;
b.sq:=a.sq;
b.nas:=a.nas;
b.pl:=(a.nas)/(a.sq);
seek(f1,i-1);
write(f1,b);


Оzzя, спасибо за помощь)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.