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

> Правила раздела!

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

> ReadLn после "assign" и "close", Что с ним? :)
ApTeMoHnv
сообщение 24.04.2009 23:35
Сообщение #1





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

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


При использовании в своём коде ReadLn'а (удивительно, да? smile.gif ), он работает, как нужно (неожиданно..smile.gif ). Как только я вписал кодик для того, чтобы создавался файл (либо вынимались данные из уже созданного), естественно со всеми assign, rewrite/reset, close, как положено, то обычная функция ReadLn (даже без дополнительных параметров типа readln(f,1)) вообще превращается в нечто для вылетания ошибки. Компиляции проходят успешно, но когда до этого ReadLn'а доходит в самой программе, то выдаёт ошибку 104: File not open for input. Нет, это я конечно понимаю, если бы я вставил этот РидЛн после "ассигна", не написав при этом "реврите/ресет" и не закрыв, то можно было бы согласиться с этой ошибкой. Но по какой причине он ко мне припирается в данном случае? о_0 Тем более ошибка "Файл не открыт для ввода", а функция Readln (прочитать), а не Writeln (записать). Что это за беспредел вообще? smile.gif
Кстати, если писать просто "Read;", а не "ReadLn;", то всё нормально.. Но я хочу именно ReadLn... =\
Юзаю обычный Turbo Pascal досовский
Спасибо за внимание.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
ApTeMoHnv
сообщение 28.04.2009 20:59
Сообщение #2





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

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


Из источника по подготовке к информатике: "Особых различий при чтении и записи в использовании операторов Read и ReadLn нет. Часто процедуру ReadLn без параметров применяют в конце программы для задержки: до нажатия на клавишу <Enter> результат выполнения программы остается на экране. Это очень полезно делать для анализа результатов.". Я это и имел ввиду. Но то, что у меня не учитывал Enter, а сразу выходит (вылетает без ошибки) из программы без нажатия, это факт. И я не знаю почему. Чего-то особенного я вроде не писал.. Я вот поэтому и сказал, по опыту. Твои программы я не пробовал запускать. И я знаю, в чём разница между Read и Realn. Первая считывает информацию с клавиатуры после нажатия Энтер, не пропуская строки, а вторая после этого переходит на начало новой строки.
Есть одно подозрение... Возможно, виновата процедура отключения мигающего курсора:

procedure CursorOff; assembler;
asm
mov ah,1
mov cx,2020h
int 10h
end;


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 28.04.2009 21:07
Сообщение #3


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

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


Цитата(ApTeMoHnv @ 28.04.2009 21:59) *
Но то, что у меня не учитывал Enter, а сразу выходит (вылетает без ошибки) из программы без нажатия, это факт. И я не знаю почему.

Я объяснил вообще-то.
Цитата

Чего-то особенного я вроде не писал...

Да-да, перенаправление основного потока ввода в никуда - это "ничего особенного"...


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
ApTeMoHnv   ReadLn после "assign" и "close"   24.04.2009 23:35
volvo   Ты хочешь здесь устроить соревнование телепатов чт...   25.04.2009 0:40
Contest   Мне вот эти слова особено понравились: если бы я в...   25.04.2009 0:52
Lapp   Извиняюсь, последний пост мой..   25.04.2009 0:54
Lapp   Сейчас зашел и обратил внимание на то, что как-то ...   25.04.2009 4:37
volvo   Lapp, а ты что, никогда не завершал программу Read...   25.04.2009 7:47
Lapp   когда то же самое делает автор?Боюсь, что не то же...   25.04.2009 17:46
ApTeMoHnv   Боюсь, что не то же самое :). Речь, как я понял,...   25.04.2009 22:47
TarasBer   : uses crt,dos; var {здесь файловая переменная не ...   26.04.2009 11:32
volvo   А теперь, что называется "вопрос на засыпку...   26.04.2009 13:28
ApTeMoHnv   По-идее, в 1ом случае, будет выдавать ошибку 104, ...   26.04.2009 23:18
volvo   По опыту? Ну, тогда запусти второй вариант и посмо...   27.04.2009 1:25
ApTeMoHnv   Из источника по подготовке к информатике: "Ос...   28.04.2009 20:59
TarasBer   Но то, что у меня не учитывал Enter, а сразу выход...   28.04.2009 21:07
volvo   Ну-ну... Во-первых, кто тебе сказал, что с клавиат...   28.04.2009 21:15
ApTeMoHnv   Вроде бы понятней.. Только вот почему при использо...   28.04.2009 22:16
TarasBer   RTFM сообщение номер 9 в этой теме. Потом что Read...   28.04.2009 22:21
ApTeMoHnv   А, всё.. Теперь точно понял.. Перечитал..) В общем...   28.04.2009 23:25


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

 



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