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