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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2009, 16:27   #1
-=PascaL=-
 
Регистрация: 06.08.2009
Сообщений: 6
По умолчанию Проблема с чтением и выводом содержимого текстового файла на экран

Начал изучать Паскаль (мой первый язык программирования). Вроде пока всё понятно, кроме как текстовых файлов. Никак не могу заставить программку выводить на экран содержимое текстового файла. Вот часть программного кода объявления переменных:
Код:
Var
 ReadMe:text;
  Stroka:string;
А это часть программки, которая не работает (в смысле компилируется без ошибок, но на экран ничего не выводит):

Код:
Begin
 Assign(ReadMe,’ReadMe.txt’);
 Reset(ReadMe);
  While not (SeekEoln(ReadMe)) do
   Begin
    Readln(ReadMe, Stroka);
    Writeln(Stroka);
   End;
 Close(ReadMe);
End;
Не могу понять, в чём ошибка.

Последний раз редактировалось Stilet; 06.08.2009 в 16:45.
-=PascaL=- вне форума Ответить с цитированием
Старый 06.08.2009, 16:33   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
Begin
Assign(ReadMe,’ReadMe.txt’);
Reset(ReadMe);
While not(EoF(ReadMe)) do
Begin
Readln(ReadMe, Stroka);
Writeln(Stroka);
End;
Close(ReadMe);
End;
а то чтото странное было
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.08.2009, 17:22   #3
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Так просто 1 строчку считает и остановится, чтоб весь файл надо в условии цикла задать

Код:
 not (SeekEoF(ReadMe))
или как подсказал Пепел Феникса
Код:
not(EoF(ReadMe))
просто скорее всего 1 строка в ReadMe.txt пустая поэтому ничего и не выводится

Последний раз редактировалось vovk; 06.08.2009 в 17:37.
vovk вне форума Ответить с цитированием
Старый 06.08.2009, 17:31   #4
-=PascaL=-
 
Регистрация: 06.08.2009
Сообщений: 6
По умолчанию

Феникс, если ты про пробелы перед каждой строчкой, то здесь нет ничего странного. Я так выделяю отдельные блоки программы, так проще ориентироваться и искать ошибки.

vovk , Пепел Феникса
Первая строка не пустая. Но я попробую сделать так как вы написали.

Не помогло. Прога открывает файл без ошибок, но вроде как пропускает чтение или просто не отображает считанное, и продолжает свою работу.

Последний раз редактировалось Stilet; 07.08.2009 в 08:55.
-=PascaL=- вне форума Ответить с цитированием
Старый 06.08.2009, 17:52   #5
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

может после Close(ReadMe); добавить ReadLn ?
vovk вне форума Ответить с цитированием
Старый 06.08.2009, 17:55   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если мне память не изменяет то в Паскале есть трассировка
и помоему путь к файлу нужно указать точный...

стоп..а это вся программа чтоли?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.08.2009, 18:14   #7
-=PascaL=-
 
Регистрация: 06.08.2009
Сообщений: 6
По умолчанию

Нет не вся, эта часть проги которая работает не праильно (а точнее савсем не работает). Эта часть програмки должна выводить на экран что-то вроде руководства к пользованию программой. Она вызывается пользователем, при случае выбора из меню соответствующего "раздела".

А если нужен точный путь к файлу, разве в данном случае программка не выдавала бы ошибку мол файл не найден?

vovk
Не помогло. А смысл в ReadLn после Close(ReadMe); у меня эта конструкция:

Код:
Begin
Assign(ReadMe,’ReadMe.txt’);
Reset(ReadMe);
While not(EoF(ReadMe)) do
Begin
Readln(ReadMe, Stroka);
Writeln(Stroka);
End;
Close(ReadMe);
End;
не в отдельном цикле. Получается программа перейдёт на новую строку и продолжит работу дальше, если я не ошибаюсь.

Пепел Феникса
Указал полный путь, теперь програ файл вообще не находит, хотя путь правильный.

Последний раз редактировалось Stilet; 07.08.2009 в 08:57.
-=PascaL=- вне форума Ответить с цитированием
Старый 06.08.2009, 18:34   #8
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

нет программа будет ждать ввода строки, я же ваш код дальше не знаю может у вас там cls
vovk вне форума Ответить с цитированием
Старый 06.08.2009, 18:40   #9
-=PascaL=-
 
Регистрация: 06.08.2009
Сообщений: 6
По умолчанию

Поставил программу на прогон в режиме пошагового выполнения, отрезок:
Код:
While not(EoF(ReadMe)) do
Begin
Readln(ReadMe, Stroka);
Writeln(Stroka);
End;
программа просто "перепрыгивает", вроде как пропускает. Хотя может так и должно быть я просто данной функцией (пошагового выполнения) ниразу не пользовался (не было надобности), я и паскаль изучать углублённо начал месяца полтора назад.

vovk
Дальше идёт запрос на ввод числового значени, за ним оператор выбора, в котором два варианта: возвращает во внешний цикл или выходит из программы.

From Stilet: Если будешь постить подряд свои посты рядом, и не оформлять код тегом по кнопке # тему закрою за нарушения и неуважение.

Последний раз редактировалось Stilet; 07.08.2009 в 08:59.
-=PascaL=- вне форума Ответить с цитированием
Старый 06.08.2009, 20:06   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я не про пробелы...отступы это стандарт
я просто ту функу забыл...

а попробуй отдельно программу написать и в ней выводить файл
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с чтением из INI файла JustKurt Общие вопросы Delphi 3 04.08.2009 20:47
Проблема с чтением типизированного файла. Вадим Буренков Общие вопросы Delphi 8 28.05.2009 13:31
проблема с чтением из файла Tesmont Общие вопросы C/C++ 0 20.05.2009 19:39
Как вывести из текстового файла на экран русский текст? Mischa Помощь студентам 8 12.03.2008 06:23