![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DriverComboBox [D6, XP]
сергей © (2009-05-29 08:29:00)На форме используется DriverComboBox.
Проблема в том, что после попытки обращения к дисководу (или CD) без диска возникает ошибка при последующем открытии файла на дисе С.
Assign(...
Rewrite(...
Никак не могу от этого избавиться.
С уважением, Сергей.
Dennis I. Komarov (2009-05-29 10:40:00) [1]Что показывает отладчик по поводу значения DirExe?
Сергей М. (2009-05-29 09:32:00) [2]
> Smile (29.05.09 09:25) [7]
А какая принципиальная разница ?
Ошибка при выполнении Rewrite либо есть либо ее нет.
А уж в каком виде осуществляется обнаружение факта ошибки - в виде исключения или в виде кода отказа - то дело второе и не суть какое важное.
Smile (2009-05-29 09:25:00) [3]А почему бы не использовать директивы:
{$I-}
...
Rewrite(...
...
{$I+}
и анализироватьIOResult?
Сергей М. (2009-05-29 09:16:00) [4]
> Обращение к файлу на диске С
Где в приведенном коде фигурирует хоть что-либо, на основании чего можно убедиться, что в переменной DirExe содержится путь относительно именно устройства C: и никакого другого ?
> Причем Rewrite() выполняется.. и выдается
> ошибка error 21
Так не бывает.
Возникновение ошибки противоречит утверждению об успешном выполнении процедуры.
Сергей (2009-05-29 09:10:00) [5]Уточняю.
Обращение к файлу на диске С.
Assign(FE, DirExe+'temp.txt');
Rewrite(FE);
Writeln(FE, ...
Разумеется все работает. Но после попытки обращения к пустому дисководу в DriverComboBox возникает ошибка. Причем Rewrite() выполняется (файл обнуляется) и выдается ошибка error 21. Такое ощущение, что после неудачной попытки надо принудительно перейти на диск С по типу ChDir, но не знаю как это сделать.
Dennis I. Komarov (2009-05-29 09:00:00) [6]
> сергей (29.05.09 08:29)
Assign(f, 'filename.ext');
Поткуда по твоему программа будет брать filename.exe файл?
Сергей М. (2009-05-29 08:54:00) [7]
> I/O error 21
Значит при Assign() ты осуществляешь обращение отнюдь не HD-, а к флоппи- или CD-драйву, ни в один из которых не вставлен носитель.
Сергей (2009-05-29 08:47:00) [8]Ошибка I/O error 21.
Сергей М. (2009-05-29 08:32:00) [9]
> возникает ошибка при последующем открытии файла на дисе
> С
Вот так вот дословно и говорит, мол, я, ошибка, возникаю ?)
И никаких комментариев по поводу своего возникновения не оставляет ?