IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Close (f), вопрос
Анна
сообщение 27.11.2005 16:24
Сообщение #1


Бывалая
***

Группа: Пользователи
Сообщений: 290
Пол: Женский
Реальное имя: Анютка

Репутация: -  7  +


У меня вопрос, может глупый ...:
Имеет ли значение, если я поставлю 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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 27.11.2005 16:27
Сообщение #2


Гость






Цитата
Имеет ли значение

no1.gif Как только закончила работать с файлом, можешь сразу ставить Close(f)... Главное, чтобы не было попыток ПОСЛЕ Close произвести чтение/запись в файл...
 К началу страницы 
+ Ответить 
HeX
сообщение 27.11.2005 16:39
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской
Реальное имя: AleX

Репутация: -  -1  +


Помоему в етом куске если нет работы с файлами без разницы где поставить
close(f);


--------------------
...Купи слона, ну и что что все говорят продай слона...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Анна
сообщение 27.11.2005 16:45
Сообщение #4


Бывалая
***

Группа: Пользователи
Сообщений: 290
Пол: Женский
Реальное имя: Анютка

Репутация: -  7  +


После
writeln('summ=',summ:0:2,' abs summ=',summabs:0:2,' filename=',s);
чтение/запись в файл уже не производится, и если я поставлю close(f) ПОСЛЕ этой строки, это за ошибку/недочёт не будет считаться? blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 27.11.2005 16:47
Сообщение #5


Гость






Ошибки не будет однозначно, я бы и недочетом не считал...
 К началу страницы 
+ Ответить 
Анна
сообщение 27.11.2005 16:54
Сообщение #6


Бывалая
***

Группа: Пользователи
Сообщений: 290
Пол: Женский
Реальное имя: Анютка

Репутация: -  7  +


To: HeX
А что тогда такое
read(f,t);
?



volvo, спасибо! Просветил give_rose.gif

Сообщение отредактировано: Анна - 27.11.2005 16:54
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
HeX
сообщение 27.11.2005 18:04
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской
Реальное имя: AleX

Репутация: -  -1  +


Там в моей фразе пропущено слово далее


--------------------
...Купи слона, ну и что что все говорят продай слона...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Fang
сообщение 27.11.2005 19:40
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 48
Пол: Мужской
Реальное имя: Fang

Репутация: -  2  +


В данном примере, вроде бы вообще не обязательно закрывать файл оператором close(f), т.к. он располагается в конце программы, а по окончании работы компилятор должен сам позаботится о закрытии...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 27.11.2005 19:48
Сообщение #9


Гость






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

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

P.S. НИКОГДА не полагайся на компилятор...
 К началу страницы 
+ Ответить 
Fang
сообщение 27.11.2005 20:36
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 48
Пол: Мужской
Реальное имя: Fang

Репутация: -  2  +


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

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

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

p.s. я ж писал
Цитата
вроде бы
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Atos
сообщение 28.11.2005 6:11
Сообщение #11


Прогрессор
****

Группа: Модераторы
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

Репутация: -  9  +


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

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

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


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

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 6:26
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"