![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
ApTeMoHnv |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Артём Репутация: ![]() ![]() ![]() |
При использовании в своём коде ReadLn'а (удивительно, да?
![]() ![]() ![]() Кстати, если писать просто "Read;", а не "ReadLn;", то всё нормально.. Но я хочу именно ReadLn... =\ Юзаю обычный Turbo Pascal досовский Спасибо за внимание. |
![]() ![]() |
ApTeMoHnv |
![]()
Сообщение
#2
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Артём Репутация: ![]() ![]() ![]() |
Боюсь, что не то же самое ![]() Lapp, как раз, ты меня не понял) Я ж конечно не настолько чайник, чтоб assign'ить, close'ить файл, а потом пытаться в него писать. "ReadLn;" я уже использую после этого (и это вообще никак не относится к файлу), чтобы, как раз как понял volvo, ждать нажатия Enter, вместо применения более длинного кода. beginбудет - и должен - вылетать именно по 104 ошибке (под TP7). Меня же интересует не это... Меня больше интересует в данной ситуации не то, почему НЕ отработал ReadLn, а то, почему при этом отработал Read... Вот.. У меня как раз код с assign(input,'blablabla.txt');. Использовал input, т.к. работал с файлами до этого только один раз. А вот сегодня спросил у препода, почему ошибка при РидЛне. input и output ведь какие-то стандартные "что-то-там". Но всё-равно непонятно, почему он всё ещё обрабатывает ReadLn, как-будто всё ещё работает с файлом, ведь я его закрыл, и Паскаль ведь должен был про него "забыть"?) Да ещё и параметры, в какой файл "читать", не задаю.. А про просто "read;", не знаю, но работает) Понял, вроде, что надо задавать в var переменную.. Так.. У меня раньше было (остальные куски вырезал, т.к. они как мне кажется не имеют отношения к делу): uses crt,dos; Теперь: uses crt,dos; Но теперь компилятор около "readln(save,cha[i]);" мне пишет ошибку 63: Invalid file type. Я так понял, мне нужен другой файловый тип..? Там какие-то типизированные, текстовые, нетипизированные, фиг разберёшься. У меня, похоже, типизированный.. Мне надо его сделать текстовым? В чём тогда их различие? Прочитал какие-то страницы в учебнике, но так и не понял. Сообщение отредактировано: ApTeMoHnv - 25.04.2009 22:48 |
TarasBer |
![]()
Сообщение
#3
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
: uses crt,dos; Стандартный ReadLN работает именно через input. По умолчанию input открыт, и связан с вводом с клавиатуры. Ты же направил его на другой файл, закрыл и всё. Можно направить его обратно на клавиатуру строчкой Assign(input, ''); Reset(input); Но лучше стандартные файловые переменные вообще не трогать, чтобы такой путаницы не было. Их трогают только на олимпиадах по программированию, когда ввод идёт только из файла taskname.in. Это в угоду скорости написания в ущерб стилю. Цитата Теперь: uses crt,dos; Мне надо его сделать текстовым? Да. Цитата В чём тогда их различие? Прочитал какие-то страницы в учебнике, но так и не понял. В том, что типизированными файлами очень удобно работать с бинарниками. Вы ведь когда файл левого расширения открываете, то видите там какую-то кашу? Вот для таких и придуманы типизированные файлы. -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 17:50 |