Все ошибки, которые могут быть проанализированы функцией IOResult, подразделяются на три группы: ошибки, диагностируемые {266} MS-DOS (их номера не превышают 99), затем файловой системой Турбо Паскаля (номера от 100 до 159), и критические ошибки, диагностируемые аппаратно. Сводка всех номеров ошибок, относящихся к работе с файлами приводится в табл. 12.6.
Таблица 12.6
Описание ошибок | |
I. ОШИБКИ УРОВНЯ DOS | |
File not found (файл не найден) ИСТОЧНИК: Reset, Append, Rename, Erase. Физический файл, связанный с файловой переменной, не найден или не существует. | |
Path not found (каталог/маршрут/ не найден) ИСТОЧНИК: Reset, Rewrite, Append, Rename, Erase. Имя файла на диске, связанное с файловой переменной, является неправильным или указывает на несуществующий подкаталог. ИСТОЧНИК: ChDir, MkDir, RmDir. Заданный маршрут является недействительным или содержит несуществующий подкаталог. | |
Too many open files (слишком много открытых файлов) ИСТОЧНИК: Reset, Rewrite, Append, Rename, Erase. Программа имеет слишком много открытых файлов. Увеличьте число в параметре FILES= файла CONFIG.SYS и перезагрузите систему. | |
File access denied (отказано в доступе к файлу) ИСТОЧНИК: Reset, Append, Rewrite. Открытие файла допускает запись (согласно значение переменной FileMode), но физический файл является каталогом или файлом, доступным только для чтения, а в случае Rewrite — эта ошибка возникает еще, когда в каталоге нет свободного места. ИСТОЧНИК: Rename. Имя физического файла совпадает с именем каталога, или новое имя указывает уже существующий файл. ИСТОЧНИК: Erase. Попытка стереть каталог или файл, доступный только для чтения. ИСТОЧНИК: MkDir. Имя уже использовано в этом каталоге, или в каталоге нет места, или имя есть имя устройства DOS. ИСТОЧНИК: RmDir. Заданное имя определяет непустой либо несуществующий каталог, или оно задает корневой каталог. ИСТОЧНИК: Read/Write и BlockRead/BlockWrite. Попытка считывать (записывать) данные в еще не открытый файл. {267} | |
Invalid file handle (недопустимый файловый канал) Эта ошибка появляется только при нарушении внутренней работы файловой системы, и ее возникновение является свидетельством того, что файловая переменная испорчена каким-либо образом. | |
Invalid file access code (неверный код доступа к файлам) ИСТОЧНИК: Reset, Append. Значение переменной FileMode в момент открытия файла было несоответствующим команде открытия. | |
Invalid drive number (неверный номер дисковода) ИСТОЧНИК: GetDir. Заданный номер диска при текущей конфигурации ПЭВМ не имеет смысла. | |
Cannot remove current directory (нельзя удалить текущий каталог). ИСТОЧНИК: RmDir. Справедливое замечание на попытку "срубить под собой сук" | |
Cannot rename across drives (нельзя при переименовании указывать разные дисководы) ИСТОЧНИК: Rename. | |
II. ОШИБКА УРОВНЯ ФАЙЛОВОЙ СИСТЕМЫ | |
Disk read error (ошибка чтения с диска) ИСТОЧНИК: Read. Возникает в типизированном файле при попытке осуществить считывание после конца файла. | |
Disk write error (ошибка записи на диск) ИСТОЧНИК: Close, Flush, Write/WriteLn, BlockWrite. Диск заполнен до отказа. | |
File not assigned (файл не связан) ИСТОЧНИК: Reset, Rewrite, Append, Rename, Erase. С переменной логического файла (файловой переменной) не было связано имя физического файла через вызов процедуры Assign. | |
File not open (файл не открыт) ИСТОЧНИК: Close, Flush, Read/Write, Seek, EOF, FilePos, FileSize, BlockRead/BlockWrite. Попытка операции ввода-вывода с еще не открытым файлом. | |
File not open for input (файл не открыт для ввода) ИСТОЧНИК: Read, ReadLn, EOF, EOLn, SeekEOF, SeekEOLn. Попытка прочитать информацию из текстового файла, не открытого для чтения. {268} | |
File not open for output (файл не открыт для вывода) ИСТОЧНИК: Write, WriteLn. Попытка записать информацию в текстовый файл, не открытый для записи. | |
Invalid numeric format (неверный числовой формат) ИСТОЧНИК: Read, ReadLn. Числовое значение, считанное из текстового файла, не соответствует числовому формату соответствующего типа данных. | |
III. КРИТИЧЕСКИЕ ОШИБКИ | |
Disk is write-protected (диск защищен от записи) | |
Unknown unit (неизвестный аппаратный модуль) | |
Drive not ready (дисковод не готов) | |
Unknown comnand (неопознанная команда) | |
CRC error in data (ошибка контроля данных в ОС) | |
Bad drive request structure length (при запросе к диску указана неверная длина структуры) | |
Disk seek error (ошибка при операции позиционирования головок на диске) | |
Unknown media type (неизвестный тип носителя) | |
Sector not found (сектор на диске не найден) | |
Printer out of paper (кончилась бумага на принтере) | |
Device write fault (ошибка при записи на устройство) | |
Device read fault (ошибка при чтении с устройства) | |
Hardware failure (сбой аппаратуры) |
{269}