Новичок
Джуниор
Регистрация: 26.02.2011
Сообщений: 2
|
неправдоподобно близкий конец файла
Есть программа,вычисляющая некоторые результаты,исходя из данных из двух файлов(для переменных типа integer и string соответственно).Есть две другие программы.Одна вводит изначальные данные в файлы:
Код:
Program Enter;
uses crt;
var a:integer;
var z:file of integer;
var x:file of string;
var pres,cl,temp,wpow:array[1..9]of integer;
var rain,wdir,cltiph,cltipm,cltipl:array[1..9]of string;var pd:array[1..2]of integer;
begin
Assign(z,'integer');
rewrite(z);
assign(x,'string');
rewrite(x);
a:=1;
while a<10 do begin
write('pressure',a,'=');readln(pres[a]);write(z,pres[a]);
write('temperature',a,'=');readln(temp[a]);write(z,temp[a]);
write('wind power',a,'=');readln(wpow[a]);write(z,wpow[a]);
write('clouds number',a,'=');readln(cl[a]);write(z,cl[a]);
write('wind direction',a,'=');readln(wdir[a]);write(x,wdir[a]);
write('high cloud form(per,persloy,perkuch,0)',a,'=');readln(cltiph[a]);write(x,cltiph[a]);
write('middle cloud form(vsloy,vkuch,bash,plot,0)',a,'=');readln(cltipm[a]);write(x,cltipm[a]);
write('low cloud form(sloy,powerkuch,slkuch,kuch,0)',a,'=');readln(cltipl[a]);write(x,cltipl[a]);
write('precipitations(0,s-snow,r-rain)',a,'=');readln(rain[a]);write(x,rain[a]);
a:=a+1;clrscr;end;
a:=8;
while a<10 do begin
write('pd(0,+-1,+-2,...)',a,'=');readln(pd[a-7]);write(z,pd[a-7]);a:=a+1;end;
writeln('end of file.');readln();
end.
Другая обновляет эти данные:
Код:
Program UPDATE;
uses crt;
var a:integer;
var z:file of integer;
var x:file of string;
var pres,cl,temp,wpow:array[1..9]of integer;
var rain,wdir,cltiph,cltipm,cltipl:array[1..9]of string;var pd:array[1..2]of integer;
begin
Assign(z,'integer');
reset(z);
assign(x,'string');
reset(x);
a:=1;
while a<10 do begin
read(z,pres[a]);
read(z,temp[a]);
read(z,wpow[a]);
read(z,cl[a]);
read(x,wdir[a]);
read(x,cltiph[a]);
read(x,cltipm[a]);
read(x,cltipl[a]);
read(x,rain[a]);
a:=a+1;
end;
read(z,pd[1]);
read(z,pd[2]);
rewrite(z);
rewrite(x);
while a<9 do begin
pres[a]:=pres[a+1];write(z,pres[a]);
temp[a]:=temp[a+1];write(z,temp[a]);
wpow[a]:=wpow[a+1];write(z,wpow[a]);
cl[a]:=cl[a+1];write(z,cl[a]);
wdir[a]:=wdir[a+1];write(x,wdir[a]);
cltiph[a]:=cltiph[a+1];write(x,cltiph[a]);
cltipm[a]:=cltipm[a+1];write(x,cltipm[a]);
cltipl[a]:=cltipl[a+1];write(x,cltipl[a]);
rain[a]:=rain[a+1];write(x,rain[a]);
a:=a+1;end;
a:=9;
write('pressure',a,'=');readln(pres[a]);write(z,pres[a]);
write('temperature',a,'=');readln(temp[a]);write(z,temp[a]);
write('wind power',a,'=');readln(wpow[a]);write(z,wpow[a]);
write('clouds number',a,'=');readln(cl[a]);write(z,cl[a]);
write('wind direction',a,'=');readln(wdir[a]);write(x,wdir[a]);
write('high cloud form(per,persloy,perkuch,0)',a,'=');readln(cltiph[a]);write(x,cltiph[a]);
write('middle cloud form(vsloy,vkuch,bash,plot,0)',a,'=');readln(cltipm[a]);write(x,cltipm[a]);
write('low cloud form(sloy,powerkuch,slkuch,kuch,0)',a,'=');readln(cltipl[a]);write(x,cltipl[a]);
write('precipitations(0,s-snow,r-rain)',a,'=');readln(rain[a]);write(x,rain[a]);
pd[1]:=pd[2];write(z,pd[1]);
write('pd(0,+-1,+-2,...)9=');readln(pd[2]);write(z,pd[2]);
writeln('thank you for updating.');close(z);close(x);readln();
end.
Ну и наконец,главная программа(часть кода с ошибкой):
Код:
program jyr;
uses crt;
var a,b,c,d,e,x,y,z,time,teplfront,xolfront,swind,wwind,nwind,malograd,per,progt,progp,g:integer;
var pres,cl,temp,wpow:array[1..9]of integer;
var rain,wdir,cltiph,cltipm,cltipl,cltip:array[1..9]of string;var pd:array[1..2]of integer;
var i:file of integer;
var s:file of string;
begin
assign(i,'integer');
reset(i);
assign(s,'string');
reset(s);
a:=1;
writeln('welcome to the weather forecast master');readln();clrscr;
while a<10 do begin
read(i,pres[a]);
read(i,temp[a]);\\Начиная со следующей строки ругается eof'ом.
read(i,wpow[a]);
read(i,cl[a]);
read(s,wdir[a]);
read(s,cltiph[a]);
read(s,cltipm[a]);
read(s,cltipl[a]);
read(s,rain[a]);if(a>5)and(rain[a]='s')and(c<>1)then begin c:=c+1;end;
a:=a+1;end;
read(i,pd[1]);
read(i,pd[2]);
Пробовал вместо
Код:
while (a<10) and (not eof(i)) and (not eof (s)) do begin
но это априори не могло ничего изменить:судя по результатам,eof остался там же,где и был.
Что делать?(кто виноват?)
|