Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]


> возникает ошибка при последующем открытии файла на дисе
> С


Вот так вот дословно и говорит, мол, я, ошибка, возникаю ?)
И никаких комментариев по поводу своего возникновения не оставляет ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо