Чтение И Вывод На Экран Данных

L1nuXXX01D

New Member
23.04.2013
1
0
#1
Паскаль

первая программа читает и записывает данные в файл

Код:
program advanced;
uses crt;
{$R-}
type POtraceno=record
day:integer;
month:integer;
suma:real;
tip:string;
end;
var f:File of potraceno;
evidens:array [1..60] of potracenoi;

k,n,i,j:integer;


begin
clrscr;
assign(f,'C:\Users\Egor\Desktop\rat0ne.txt');
rewrite(f);

for i:=1 to 60 do

begin
for i:=1 to 8 do
begin evidens[i].day:=i+21; evidens[i].month:=2;end;
for i:=8 to 39 do
begin evidens[i].day:=i-7; evidens[i].month:=3;end;
for i:=39 to 60 do
begin
evidens[i].day:=i-38; evidens[i].month:=4; end;
for i:=1 to 60 do
begin
writeln('cislo: ',evidens[i].day,' luna a ', evidenta[i].month,' -potraceno:');
writeln('- suma ');readln(evidens[i].suma);
writeln('- tipul ');readln(evidens[i].tip);
end;
write(f, evidens[i]);
end;
close(f);
readln;
end.
Вот эта прога записывает данные в файл!

а следующая по идее должна читать их и выводить на экран

Код:
program gapoj;
uses crt;	{$R-}
type potraceno=record
day:integer;
month:integer;
suma:integer;
tip:string;
end;
var f1:file of potraceno;
evidens:array [1..60] of potraceno;

k,n,i,j:integer;
begin
clrscr;

assign(f1, 'c:\Users\Egor\Desktop\Rat0ne.txt');
reset(f1);
read(f1,evidens[j]);
for j:=1 to 60 do
begin
writeln(' ',evidens[j].day,'.',evidens[j].month,' potraceno:');
writeln(evidens[j].suma,' $ dlia ',evidens[j].tip);
end;
close(f1);
readln;
end.
Однако прога выводит на экран только


Код:
0.0 potraceno
0$ dlia
помогите понять почему)
 

hosm

* so what *
18.05.2009
2 442
9
42
Kiev, Ukraine
#2
ошибка при записи, убери for i:=1 to 60 do begin в самом начале программы, и end перед записью в файл, тут совсем не нужен вложенный цикл, можно в одном цикле выводить данные на экран и в файл (тем более, у тебя там одна и та же переменная-счетчик i во внешнем и вложенном цикле).