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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2008, 20:37   #1
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию Бесконечное открытие файлов

Вот:
Код:
program OpenText;
uses crt;
var         f: Text;
  s, FilePath: string;
       answer: string[2];
procedure LoadTextFile;
begin
  Clrscr;
  Write('Press text file path ');
  ReadLn(FilePath);
  Assign(f, FilePath);
  Reset(f);
  while not EOF(f) do
   begin
    ReadLn(f, s);
    WriteLn(s);
   end;
  Close(f);
OpenAgain;
end;
procedure OpenAgain;
begin
 WriteLn('Do you want again open file? (Y/N)');
 readLn(answer);
 if ((answer = 'Y') or (answer = 'y')) then LoadTextFile;
end;

begin
 LoadTextFile;
 OpenAgain;
 ReadLn;
end.
Ошибка такая:
"Error 3. Unknown identifiter OpenAgain".
Ошибка в том, что процедура создана после процедуры LoadtextFile, поэтому как бы не существует. А как исправить эту ошибку?
................................... ................................... ...............
Модераторы, пожалуйста перенесите тему, я ошибся разделом.

Последний раз редактировалось Манжосов Денис :); 21.11.2008 в 20:39. Причина: Ошибся разделом
Манжосов Денис :) вне форума Ответить с цитированием
Старый 21.11.2008, 21:45   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Используй опережающее описание: forward
Код:
program OpenText;
uses crt;
var         f: Text;
  s, FilePath: string;
       answer: string[2];

procedure OpenAgain; forward;

procedure LoadTextFile;
begin
  Clrscr;
  Write('Press text file path ');
  ReadLn(FilePath);
  Assign(f, FilePath);
  Reset(f);
  while not EOF(f) do
   begin
    ReadLn(f, s);
    WriteLn(s);
   end;
  Close(f);
OpenAgain;
end;

procedure OpenAgain;
begin
 WriteLn('Do you want again open file? (Y/N)');
 readLn(answer);
 if ((answer = 'Y') or (answer = 'y')) then LoadTextFile;
end;

begin
 LoadTextFile;
 OpenAgain;
 ReadLn;
end.
_Dmitry вне форума Ответить с цитированием
Старый 21.11.2008, 21:46   #3
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Ну создай её до процедуры LoadTextFile, в чём проблема?
_Engine_ вне форума Ответить с цитированием
Старый 21.11.2008, 21:48   #4
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Цитата:
Ну создай её до процедуры LoadTextFile, в чём проблема?
Не поможет, они у него циклически ссылаются друг на друга.
_Dmitry вне форума Ответить с цитированием
Старый 21.11.2008, 21:52   #5
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Виноват, невнимательно посмотрел )
_Engine_ вне форума Ответить с цитированием
Старый 21.11.2008, 21:54   #6
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

_Dmitry
Спасибо
Манжосов Денис :) вне форума Ответить с цитированием
Старый 21.11.2008, 21:57   #7
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

И ещё один вопрос.
Какой процедурой можно выйти из программы паскалевской?
Манжосов Денис :) вне форума Ответить с цитированием
Старый 21.11.2008, 22:04   #8
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Halt; завершает выполнение программы
_Dmitry вне форума Ответить с цитированием
Старый 21.11.2008, 22:11   #9
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Ещё раз спасибо.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 23.11.2008, 11:35   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Манжосов Денис, имхо, вообще Вы придумали КРАЙНЕ неэффективный способ организации программы!! (я уже не говорю, про использование глобальных переменных!!)
ну напишите в процедуре LoadTextFile
Код:
repeat
  <тут Ваш код...>
 WriteLn('Do you want again open file? (Y/N)');
 readLn(answer);
until Not ((answer = 'Y') or (answer = 'y'));
не надо выносить в отдельные процедуры/функции то, что не нужно ;-)
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие файлов в Windows bakabul Операционные системы общие вопросы 13 22.09.2020 17:03
Открытие файлов из Delphi Demien Общие вопросы Delphi 16 28.07.2011 01:06
Открытие файлов limon Помощь студентам 4 11.09.2008 09:06
открытие нескольких файлов valyan Общие вопросы Delphi 10 17.07.2008 20:27
открытие файлов Ensoph Общие вопросы Delphi 5 31.03.2008 20:45