@SevaSava

Почему программе не удаётся найти указанный файл?

Здравствуйте. После запуска программы и ввода чисел появляется сообщение о том, что программе не удаётся найти указанный файл - Police.txt, при этом программа ссылается на строку 7 (функция FindNumber) :

Reset(aFile);

Код программы:

program police_bd;
uses crt;
function FindNumber(var aFile: text; aNumber: integer): boolean;
var N: integer;    //Текущий номер в БД
begin
     FindNumber:=false; // на случай, если файл пуст
     Reset(aFile);  // позицию чтения устанавливаем в начало файла
     N:=0; // в начале цикла задаём несуществующий номер
     {Читаем номера из файла, пока НЕ конец файла и номер НЕ найден}
     While not Eof(aFile) and (N <> aNumber) do
           begin
                Readln(aFile, N);
                FindNumber:=(N=aNumber);  //true, если номер нашёлся
           end;
end;

var F: text;
    Num: integer;

begin
     clrscr;
            Assign(F, 'Police.txt');
            repeat
                  Write('Укажите номер автомобиля: ');
                  Readln(num);
                  if FindNUmber(F, Num) then
                     Writeln('Эта машина в розыске, хватайте его!')
                  else
                      Writeln('Пропустите его.');
            until Num=0; // 0 - признак завершния программы
            Close(F);
end.


Подскажите, в чём проблема?
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 2
ZERGeich
@ZERGeich
Программа работает нормально.
У вас проблема в оболочке паскаля.
Смените текущую директорию на директорию проекта.
Или (что гораздо более правильно) указывайте путь до текстового файла явным образом:
uses systemutils;

...

Assign(F, ExtractFilePath(paramstr(0))+'Police.txt');


ExtractFilePath - это извлечение пути до указанного в параметрах файла.
paramstr(0) - это полное название исполняемого файла программы.
Ответ написан
Комментировать
@alexalexes
Вот же открытие файла:
Assign(F, 'Police.txt');
А здесь спотыкается, потому что его открыть не может:
Reset(aFile);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы