Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2011, 17:48   #1
Mad_Troiden
Новичок
Джуниор
 
Регистрация: 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 do begin
Код:
while (a<10) and (not eof(i)) and (not eof (s)) do begin
но это априори не могло ничего изменить:судя по результатам,eof остался там же,где и был.

Что делать?(кто виноват?)
Mad_Troiden вне форума Ответить с цитированием
Старый 26.02.2011, 17:56   #2
Mad_Troiden
Новичок
Джуниор
 
Регистрация: 26.02.2011
Сообщений: 2
По умолчанию

Попробовал выполнить по шагам.Обрывается не на первом цикле а на втором.~)
Несмотря на то,что команда close стоит, все время пишет что файлы не закрыты.Может быть,такая информация поможет?
Mad_Troiden вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конец файла (delphi) CAMOBAP Помощь студентам 3 12.01.2011 09:31
конец файла boomeer Общие вопросы C/C++ 2 04.08.2010 15:55
запись в конец файла kate158 Общие вопросы Delphi 2 28.09.2009 19:17
Дописать в конец файла Cdevelop Общие вопросы C/C++ 1 25.03.2009 21:39
Дописать в конец файла Cdevelop Общие вопросы C/C++ 5 15.03.2009 16:46