Помощь - Поиск - Пользователи - Календарь
Полная версия: Close (f)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Анна
У меня вопрос, может глупый ...:
Имеет ли значение, если я поставлю close(f) (см. в коде)

Кусок:
reset(f);

  while not eof(f) do begin
   read(f,t);
  summ:=summ+t;
  summabs:=summabs+abs(t);
   end;
  close(f); {здесь}

 writeln('summ=',summ:0:2,' abs summ=',summabs:0:2,' filename=',s);
close(f); {или здесь?}
 readln;
end.	
volvo
Цитата
Имеет ли значение

no1.gif Как только закончила работать с файлом, можешь сразу ставить Close(f)... Главное, чтобы не было попыток ПОСЛЕ Close произвести чтение/запись в файл...
HeX
Помоему в етом куске если нет работы с файлами без разницы где поставить
close(f);
Анна
После
writeln('summ=',summ:0:2,' abs summ=',summabs:0:2,' filename=',s);
чтение/запись в файл уже не производится, и если я поставлю close(f) ПОСЛЕ этой строки, это за ошибку/недочёт не будет считаться? blink.gif
volvo
Ошибки не будет однозначно, я бы и недочетом не считал...
Анна
To: HeX
А что тогда такое
read(f,t);
?



volvo, спасибо! Просветил give_rose.gif
HeX
Там в моей фразе пропущено слово далее
Fang
В данном примере, вроде бы вообще не обязательно закрывать файл оператором close(f), т.к. он располагается в конце программы, а по окончании работы компилятор должен сам позаботится о закрытии...
volvo
Fang, я бы например у тебя такую работу (без закрытого файла) не принял. А представь себе ситуацию, в которой ПОСЛЕ последнего обращения к файлу возникает Run-Time Error... НО !!! Файл не был закрыт. Что произойдет с его содержимым? Только хорошо подумай, прежде чем ответить !!!

Вот если файл закрыт, ничего не произойдет, это гарантируется ...

P.S. НИКОГДА не полагайся на компилятор...
Fang
Цитата
Вот если файл закрыт, ничего не произойдет, это гарантируется ...

P.S. НИКОГДА не полагайся на компилятор...

Спасибо. Буду знать.

p.s. я ж писал
Цитата
вроде бы
Atos
Цитата
Fang, я бы например у тебя такую работу (без закрытого файла) не принял. А представь себе ситуацию, в которой ПОСЛЕ последнего обращения к файлу возникает Run-Time Error... НО !!! Файл не был закрыт. Что произойдет с его содержимым? Только хорошо подумай, прежде чем ответить !!!

Вот если файл закрыт, ничего не произойдет, это гарантируется ...

P.S. НИКОГДА не полагайся на компилятор...


Точно!! 100%! Был у меня такой глюк на олимпиаде... dry.gif dry.gif Забыл поставить close, и на предварительном запуске прога работала нормально. Но потом в конце программы я дописал ещё один проход по файлу, и... В общем-то, конечно, разобрался, где ошибка, но лишних пять минут потерял sad.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.