Все ошибки, которые могут быть проанализированы функцией IOResult, подразделяются на три группы: ошибки, диагностируемые {266} MS-DOS (их номера не превышают 99), затем файловой системой Турбо Паскаля (номера от 100 до 159), и критические ошибки, диагностируемые аппаратно. Сводка всех номеров ошибок, относящихся к работе с файлами приводится в табл. 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 (сбой аппаратуры)
|