Страница 1 из 1
Непонятная ошибка. Pascal
Добавлено: 11 фев 2007, 23:30
Колядин Максим
Дело в том, что у меня возникает, по непонятной мне причине, ошибка - как только я вызываю процедуру assign для открытия файла на чтение, программа ничего не выполняет, разве что выдаёт ошибку Runtime error. Но происходит это лишь в том случае, когда файла, вызываемого процедурой assign, нет на диске (несуществует). Раньше было Path not found или File not found, а сейчас - непойму что. Заметил я это уже в скомпелированном *.exe-файле, когда вместо Runtime error с помощью IOResult он у меня выдавал Файл не найден.. Что случилось - понятия не имею.
Буду очень признателен если вы мне поможете. Спасибо.
Re: Непонятная ошибка. Pascal
Добавлено: 12 фев 2007, 05:29
Oleg_Rus
можно устроить процедуру создания файла через канал выхода
procedure CreateFile;
Assign(f, '*.txt'); ReWrite (f);
Close(f);
end;
процедура должа создать файл.
Re: Непонятная ошибка. Pascal
Добавлено: 13 фев 2007, 03:27
Колядин Максим
Причём здесь файл? Мне не нужно чтобы программа его создавала, а просто чтобы когда заданного файла нет на диске она выдавала "Файл несуществует".
Код: Выделить всё
procedure checking;
assign(f, direcrtoty);
{$I-}
reset(f);
If IOResult<>0 then writeln('Файл не существует.');
If IOResult=0 then writeln('Файл найден как ',directoty);
{$I+}
readkey;
end.
Так вот, вместо того чтобы IOResult выдавал
Файл не существует, он пишет Runtime error at ......
Re: Непонятная ошибка. Pascal
Добавлено: 13 фев 2007, 11:56
Игорь Акопян
Колядин Максим, вапче-то рекомендуется обрамлять директивой компилятора только один оператор 'reset'. И, если мне не изменяет память у тебя отработают оба условия, т.к. после первого обращения к функции IOResult её значение будет сброшено в 0, так что проверять надо через ELSE
Re: Непонятная ошибка. Pascal
Добавлено: 14 фев 2007, 00:23
Колядин Максим
Вы бы лучше мне сказали почему у меня ошибка возникает... а не то что рекомендуется обрамлять директивой компилятора только один оператор 'reset'. А на счёт else - спасибо! Хороший совет.
Re: Непонятная ошибка. Pascal
Добавлено: 14 фев 2007, 10:00
Хыиуду
У меня в таком варианте получается так (если без элса и директивы компилятора оставлять на месте): если файл существует - выдается сообщение об успехе, если нет - сначала о неудаче, потом об успехе. Ошибка не возникает. Turbo Pascal 7.0
Re: Непонятная ошибка. Pascal
Добавлено: 14 фев 2007, 10:53
Oleg_Rus
в паскале есть функция поиска файла по диску... мм... блин, забыл как ее там, но точно помню было задание поиска pas-файла, там подключение модуля Dos, еще чего то, но ведь было...
Re: Непонятная ошибка. Pascal
Добавлено: 14 фев 2007, 10:56
Oleg_Rus
вспомнил FindFirst(FileName, faArchives, DirInfo);
только я до сих пор не могу понять, что за faArchives и DirInfo.
Re: Непонятная ошибка. Pascal
Добавлено: 14 фев 2007, 15:23
Колядин Максим
Procedure FindFirst(Path : String; Attr: word; var F: TSearchRec);
Path – путь для поиска с маской; Attr- атрибуты искомых файлов; F- запись типа TsearchRec с результатами поиска.