Сообщения и коды ошибок

Сообщения и коды ошибок

  1. Out of memory (выход за границы памяти)
  2. Компилятору не хватает памяти. Имеется ряд возможных решений этой проблемы:

    • Если в опции COMPILE/DESTINATION установлено значение MEMORY, замените эту опцию на DISK.
    • Если в опции OPTIONS/COMPILER/LINK установлено значение MEMORY, замените эту опцию на DISK.
    • Если Вы используете постоянно помещенные в память (резидентные) обслуживающие программы, такие как WINDOWS, SIDEKICK, NORTON
      удалите их из памяти.
    • Если Вы используете интегрированную среду TURBO.EXE, то попробуйте воспользоваться компилятором ТРС.ЕХЕ, он занимает меньше памяти.
    • Если ни одна из рекомендаций не помогает, то, возможно, Ваша программа просто слишком велика, чтобы компилировать ее в таком объеме памяти. В этом случае Вы должны разбить её на два или более модулей.

  3. Indentifier expected (не указан идентификатор). Этот идентификатор не был описан.
  4. Unknow indentifier (неизвестный идентификатор). Этот идентификатор не был описан.
  5. Duplicate indentifier (двойной идентификатор). Попытка дважды описать один и тот же идентификатор.
  6. Syntax error (синтаксическая ошибка). В исходном тексте найден неверный символ. Возможно, Вы забыли заключить в кавычки строковую константу.
  7. Error in real constant (ошибка в вещественной константе).
  8. Error in integer constant (ошибка в целой константе). Учтите, что после целых действительных чисел, превышающих диапазон представления целых чисел (-2147483648...+2147483647), должны ставиться точка и нуль, например 12345678912.0.
  9. String constant exceeds line (строковая константа превышает допустимые размеры). Вероятно, Вы забыли поставить апостроф в конце строковой константы.
  10. Too many nested files (слишком много вложенных файлов). Компилятор допускает не более пяти вложенных исходных файлов.
  11. Unexpected end of file (не найден конец файла). Вы могли получить это сообщение об ошибке по одной из следующих причин:

    • Ваш исходный файл закончился перед последним END основного раздела< операторов. Вероятно, в Вашей программе неодинаковое количество операторов BEGIN и END.
    • Включаемый файл заканчивается в середине раздела операторов. Каждый раздел операторов должен целиком помещаться в одном файле.
    • Вы не закончили комментарий.

  12. Line to long (слишком длинная строка). Максимальная длина строки, обрабатываемой компилятором, равна 126 символам (обратите внимание: редактор среды может обрабатывать до 249 символов в строке).
  13. Type identifier expected (здесь нужен идентификатор типа). Не указан тип
    идентификатора.
  14. Too many open files (слишком много открытых файлов). Если появляется эта ошибка, то это означает, что конфигурационный файл CONFIG.SYS операционной системы не включает параметр FILES=XX или этот параметр указывает слишком мало файлов. Увеличьте число файлов до нужного значения, например, до 20.
  15. Invalid file name (неверное имя файла). Имя файла не верно или указан несуществующий путь.
  16. File not found (файл не найден). Файл не был найден в просмотренных
    каталогах.
  17. Disk full (диск заполнен). Удалите некоторые файлы или воспользуйтесь
    новым диском.
  18. Invalid compiler directive (неправильная директива компилятора). Неверная буква в директиве компилятора, один из параметров директивы компилятора неверный, или Вы пользуетесь глобальной директивой компилятора, когда компиляция тела программы уже началась.
  19. Too many files (слишком много файлов). В компиляции программы или программного модуля участвуют слишком много файлов. Попытайтесь не использовать так много файлов, например, объединяя включаемые файлы.
  20. Undefined type in pointer definition (неопределенный тип в объявлении указателя). Попытка объявить типизированный указатель, связанный с необъявленным типом данных.
  21. Variable identifier expected (отсутствует идентификатор переменной). На этом месте должен быть идентификатор переменной.
  22. Error in type (ошибка в объявлении типа). Объявление типа не может начинаться с этого символа.
  23. Structure too lage (слишком большая структура). Максимально допустимый размер любого структурированного типа -65520 байт.
  24. Set base type of range (базовый тип множества нарушает границы). Базовый тип множества должен представлять собой тип-диапазон с границами в пределах от 0 до 255 или перечисляемый тип с не более чем 256 значениями.
  25. File components may not be files (компонентами файла не могут быть файлы). Конструкции типа файл файлов не допускаются.
  26. Invalid string length (неверная длина строки). Длина строки должна находиться в диапазоне от 1 до 225.
  27. Type mismatch (несоответствие типов). Это сообщение может быть вызвано следующими причинами:

    • Несовместимые типы переменной и выражения в операторе присваивания.
    • Несовместимые типы фактического и формального параметров в обращении к процедуре или функции.
    • Тип выражения несовместим с типом индекса при индексировании массива.
    • Несовместимые типы операндов в выражении.

  28. Invalid subrange base type (неправильный базовый тип для типа-диапазона).Допустимыми базовыми типами являются все порядковые типы.
  29. Lower bound greater than upper bound (нижняя граница больше верхней).Описание типа-диапазона содержит неправильные границы.
  30. Ordinal type expected (нужен порядковый номер). Вещественные, строковые, структурные, процедурные типы и указатели в данном месте программы не допускаются.
  31. Integer constant expected (нужна целая константа).
  32. Constant expected (нужна константа).
  33. Integer or real constant expected (нужна целая или вещественная константа).
  34. Type identifier expected (нужен идентификатор типа).
  35. Invalid function result type (неправильный тип результата функции). Правильными типами результата функции являются все простые типы, строковые типы и указатели.
  36. Label identifier expected (нужен идентификатор метки). Метка не обозначена с помощью идентификатора, как это требуется из контекста программы.
  37. BEGIN expected (нужен BEGIN).
  38. END expected (нужен END).
  39. Integer expression expected (нужно выражение типа INTEGER).
  40. Ordinal expression expected (нужно выражение перечисляемого типа). Предшествующее выражение должно иметь перечисляемый тип.
  41. Boolean expression expected (нужно выражение типа BOOLEAN). Предшествующее выражение должно иметь тип BOOLEAN.
  42. Operand types do not match operator (типы операндов не соответствуют операции). Данная операция не может быть применена к указанным операндам, например, 'A' div '2'.
  43. Error in expression (ошибка в выражении). Данный символ не может участвовать в выражении указанным образом. Возможно, Вы забыли указать операцию между двумя операндами.
  44. Illegal assignment (неверное присваивание). Файлам и не типизированным переменным нельзя присваивать значения. Идентификатору функции можно присвоить значение только внутри раздела операторов данной функции.
  45. Field identifier expected (нужен идентификатор поля). Попытка использовать запись целиком в том месте, где требуется ссылка на какое-либо поле записи.
  46. Object file too large (объектный файл слишком большой). Турбо-Паскаль не может компоновать файлы .obj больше 64 Кбайт.
  47. Undefined external (неопределенная внешняя процедура). Внешняя процедура или функция не имеет соответствующего определения PUBLIC в объектном файле. Убедитесь, что вы указали все объектные файлы в директивах (SL filename} и проверьте написание идентификаторов процедуры или функции в файле .asm.
  48. Invalid object file record (неправильная запись объектного файла). Файл .obj содержит неверную объектную запись. Убедитесь, что данный файл является действительно файлом .obj
  49. Code segment too large (сегмент кода слишком большой). Максимальный размер кода программы или программного модуля равняется 65520 байт. Если вы компилируете программный модуль, разбейте его на два или более программных модуля.
  50. Data segment too large (сегмент данных слишком велик). Максимальный размер сегмента данных программы равен 65520 байт, включая данные, используемые программными модулями. Если вам нужно большее количество глобальных данных, опишите большие структуры с помощью указателей и выделяйте для них память с помощью процедуры NEW.
  51. DO expected (нужен оператор DO).
  52. Invalid PUBLIC definition (неверное определение PUBLIC). Возможные причины сообщения:

    • Данный идентификатор получил тип PUBLIC, с помощью соответствующей директивы языка ассемблер, но не соответствует описанию EXTERNAL в программе или программном модуле Паскаля.
    • Две или более директивы PUBLIC языка ассемблер определяют один и тот же идентификатор.
    • Файлы .obj определяют символы PUBLIC, не находящиеся в сегменте CODE.

  53. Invalid EXTRN definition (неправильное определение EXTRN). Возможные причины сообщения:

    • Программа на ассемблере ссылается с помощью директивы ETRN на идентификатор, который не описан в программе на Паскале и не был описан в интерфейсных секциях используемых программных модулей.
    • Ассемблерная программа ссылается на идентификатор, обозначающий абсолютную переменную (т.е. определённую словом ABSOLUTE).
    • Ассемблерная программа ссылается на идентификатор процедуры или функции типа INLINE.

  54. Too many EXTRN definition (слишком много определений типа EXTRN).Турбо-Паскаль не может обрабатывать файлы .obj при более чем 256 определениях EXTRN.
  55. OF expected (требуется OF).
  56. INTERFACE expected (требуется интерфейсная секция).
  57. Invalid relocatable reference (недействительная перемещаемая ссылка). Возможные причины сообщения:

    • Файл .obj содержит данные и перемещаемые ссылки в сегментах, отличных от CODE. Например, Вы пытаетесь описать инициализированные переменные в сегменте DATA.
    • Файл .com содержит ссылки с размерами в байтах на перемещаемые символы. Такая ошибка происходит в случае, если Вы используете, операторы HIGH и DOWN с перемещаемыми символами или если Вы ссылаетесь в директивах DB на перемещаемые символы.
    • Операнд ссылается на перемещаемый символ, который не был определен в сегменте CODE или в сегменте DATA.
    • Операнд ссылается на процедуру EXTRN или функцию EXTRN со сдвигом, например, CALL SortProc +8.

  58. THEN expected (требуется THEN).
  59. TO or DOWNTO expected (требуется ТО или DOWNTO).
  60. Undefined forward (неопределенное опережающее описание). Возможные причины сообщения:

    • Были описаны процедура или функция в интерфейсной секции программного модуля, но их определение отсутствует в секции реализации.
    • Процедуры или функции были описаны с помощью опережающего описания, но их определение не найдено.
  61. Too many procedures (слишком много процедур). Турбо-Паскаль не допускает более 512 процедур или функций в одном модуле. Если Вы компилируете программу, то поместите некоторые процедуры или функции в модули. Если Вы компилируете модуль, то разбейте его на два или несколько модулей.
  62. Invalid typecast (неверное преобразование типа). Возможные причины сообщения:

    • Попытка разместить в памяти, занимаемой некоторой переменной, значение выражения другого типа в случае, когда размер размещаемого значения не равен размеру переменной.
    • Вы пытаетесь осуществить преобразование типа выражения, когда разрешается только ссылка на переменную, процедуру или функцию.

  63. Division by zero (деление на ноль). Предшествующая операция пытается выполнить деление на ноль.
  64. Invalid file type (неверный файловый тип). Данный файловый тип не обслуживается процедурой обработки файлов. Например, процедура READLN используется для типизированного файла, или процедура SEEK -для текстового файла.
  65. Cannot Read or Write variables of this type (нет возможности считать или записать переменные данного типа). Нарушены следующие ограничения:

    • Процедуры READ и READLN могут считывать переменные символьного, целого, действительного и строкового типа.
    • Процедуры WRITE и WRITELN могут выводить переменные символьного, целого, действительного, логического и строкового типа.

  66. Pointer variable expected (нужно использовать переменную-указатель). Предыдущая переменная должна быть указателем.
  67. String variable expected (нужна строковая переменная). Предшествующая переменная должна иметь строковый тип.
  68. String expression expected (нужно выражение строкового типа). Предшествующее выражение должно иметь строковый тип.
  69. Unit not found (программный модуль не найден). Один или несколько программных модулей, используемых данным модулем, не указаны в предложении USES.
  70. Unit name mismatch (несоответствие имен программных модулей). Имя программного модуля, найденное в файле .tpu, не соответствует имени, указанному в предложении USES.
  71. Unit version mismatch (несоответствие версий программных модулей). Один или несколько программных модулей, используемых данной программой, были изменены после их компиляции. Воспользуйтесь опцией COMPILE/MAKE или COMPILE/BUILD в интегрированной интерактивной среде или опциями /М или /В в компиляторе ТРС, что позволит автоматически скомпилировать программные модули, нуждающиеся в перекомпиляции.
  72. Duplicate unit name (повторное имя программного модуля). Вы уже указали этот программный модуль в операторе USES.
  73. Unit file format error (ошибка формата файла модуля). Файл .tpu является недействительным. Убедитесь, что это действительно файл .tpu.
  74. Implementation expected (отсутствует исполняемая часть модуля).
  75. Constant and case types do not match (типы констант и тип выражения оператора CASE не соответствуют друг другу). Тип константы оператора CASE не совместим с выражением в операторе варианта.
  76. Record variable expected (нужна переменная типа запись). Предшествующая переменная должна иметь тип запись.
  77. Constant out of range (константа нарушает границы). Возможные причины сообщения:

    • Вы пытаетесь указать индекс массива, выходящий за его границы.
    • Вы пытаетесь присвоить переменной значение, выходящее за границы, допустимые для типа этой переменной.
    • Вы пытаетесь передать в качестве фактического параметра процедуре или функции константу, выходящую за границы, допустимые для типа соответствующего формального параметра.

  78. File variable expected (нужна файловая переменная). Предшествующая переменная должна иметь файловый тип.
  79. Pointer expression expected (нужно выражение типа указатель).
    Предшествующее выражение должно иметь тип указателя.
  80. Integer or real expression expected (нужно выражение типа REAL или INTEGER). Предшествующее выражение должно иметь тип (REAL или INTEGER)
  81. Label not within current block (метка не находится внутри текущего блока). Оператор GOTO не может ссылаться на метку, находящуюся вне текущего блока.
  82. Label already defined (метка уже определена). Данная метка уже помечает оператор.
  83. Undefined label in processing statement part (неопределенная метка в предшествующем разделе операторов). Данная метка была описана, и на неё осуществлялась ссылка в предшествующем разделе операторов, но она не указана в тексте программы.
  84. Invalid @ argument (недействительный аргумент операции @).Действительными аргументами являются идентификаторы переменных, процедур и функций.
  85. Unit expected (нужно кодовое слово UNIT).
  86. ";" expected (нужно указать ";" ).
  87. ":" expected (нужно указать ":" .
  88. "," expected (нужно указать "," ).
  89. "(" expected (нужно указать "(" ).
  90. ")" expected (нужно указать ")" ).
  91. "=" expected (нужно указать "=" ).
  92. ":=" expected (нужно указать ":=" ).
  93. "[" or "(." expected (нужно "[" или "(.").
  94. "]" or ".)" expected (нужно "]" или ".)").
  95. "." expected (нужно ".").
  96. ".." expected (нужно "..").
  97. Too many variables (слишком много переменных). Возможные причины сообщения:

    • Общий размер глобальных переменных, описанных в программе или программном модуле, не может превышать 64 Кбайт.
    • Размер локальных переменных, описанных в программе или функции, не может превышать 64 Кбайт.

  98. Invalid FOR control variable (неправильная управляющая переменная оператора FOR). Управляющая переменная оператора FOR должна быть переменной перечисляемого типа, определенной в разделе описаний текущей программы.
  99. Integer variable expected (нужна переменная целого типа) предшествующая переменная должна иметь целый тип. )
  100. Files are not allowed here (здесь не допускаются файлы). Типизированная константа не может иметь файловый тип.
  101. String length mismatch (несоответствие длины). Длина строковой константы не соответствует количеству элементов символьного массива.
  102. Invalid ordering of fields (неверный порядок полей). Поля в константе типа запись должны записываться в порядке их описания.
  103. String constant expected (нужна константа строкового типа).
  104. Integer or real variable expected (нужна переменная типа INTEGER или REAL). Предшествующая переменная должна иметь целый или вещественный тип.
  105. Ordinal variable expected (нужна переменная порядкового типа). Предшествующая переменная должна иметь порядковый тип.
  106. INLINE error (ошибка в операторе INLINE). Оператор "<" не допускается в сочетании с перемещаемыми ссылками на переменные. Такие ссылки всегда имеют размер в слово.
  107. Character expression expected (предшествующее выражение должно иметь символьный тип).
  108. Too many relocation items (слишком много перемещаемых элементов).Размер таблицы перемещения файла .ехе превышает 64К, что является верхним пределом в Турбо-Паскале. Если вы обнаружили эту ошибку, то это значит, что программа просто слишком велика для обработки компоновщиком Турбо-Паскаля. Возможно также, что она слишком велика для выполнения в PC DOS. В таком случае нужно выделить в программе основной раздел, который выполнял бы обращение к двум или более вспомогательным разделам с помощью процедуры EXEC из модуля DOS.
  109. Not enough memory to run program (недостаточно памяти для выполнения программы). Недостаточно памяти для выполнения программы из среды Турбо-Паскаля. Попытайтесь воспользоваться рекомендациями, связанными с ошибкой 1. Если это не поможет, то скопируйте свою программу на диск, выйдите из среды и запустите программу средствами ДОС.
  110. Cannot find EXE file (невозможно найти файл .ехе). по какой-то причине файл .ехе сгенерированный ранее компилятором, исчез.
  111. Cannot run a unit (модуль выполнить нельзя). Вы не можете выполнить программный модуль. Чтобы проверить его, напишите программу, использующую этот программный модуль.
  112. Compilation aborted (компиляция прервана). Компиляция была прервана с помощью CTRL-BREAK.
  113. CASE constant out of range (константа CASE нарушает допустимые границы). Целочисленные константы оператора CASE должны находиться в диапазоне от -32768 до 32767.
  114. Error in statement (ошибка в операторе). Данный символ не может быть первым символом в операторе.
  115. Cannot call an interrupt procedure (невозможно вызвать процедуру прерывания). Вы не можете непосредственно вызвать процедуру прерывания.
  116. Must have an 8087 to compile this (для компиляции необходимо наличие сопроцессора 8087). Для компиляции программ и программных модулей в режиме {$N+} необходим сопроцессор 8087. Используйте программную эмуляцию сопроцессора с помощью директивы {$N+.E+}.
  117. Must be in 8087 mode to compile this (для компиляции необходим режим 8087). Данная программа может быть скомпилирована только в режиме {$N+}. В состоянии {$N-} операции с типами SINGLE, DOUBLE, EXTENDED и СОМР не допускаются.
  118. Target address not found (указанный адрес не найден). Команда COMPILER/FIND ERROR в среде Турбо-Паскаля или опция /F в командной строке компилятора ТРС.ЕХЕ не обнаружила оператор, соответствующий заданному адресу.
  119. Include files are not allowed here (здесь не допускаются включаемые файлы). Раздел операторов должен целиком размещаться в одном файле.
  120. TMP file format error (ошибка формата файла .ТМР). Файл .ТМР является недействительным. Убедитесь, что этот файл является в действительности файлом .ТМР.
  121. NIL expected (нужен NIL).
  122. Invalid qualifier (неверный идентификатор). Возможные причины сообщения:

    • Вы пытаетесь индексировать переменную, которая не является массивом.
    • Вы пытаетесь указать поля в переменной, которая не является записью.
    • Вы пытаетесь использовать в качестве указателя переменную, которая не является указателем.

  123. Invalid variable reference (недействительная ссылка на переменную). Предыдущая конструкция удовлетворяет синтаксису ссылки на переменную, но она не указывает адрес памяти. Наиболее вероятно, что Вы вызываете функцию-указатель, но забываете поставить знак ? после неё.
  124. Too many symbols (слишком много символов). Программа или программный модуль содержат более 64 Кбайт символов. Если Вы компилируете программу с директивой {$D+},xo попробуйте отключить эту директиву или разбейте программу на несколько модулей.
  125. Statement part too large (слишком большой раздел операторов). Турбо-Паскаль ограничивает размер раздела операторов примерно до 24 Кбайт. Если Вы обнаружили эту ошибку, поместите части раздела операторов в одну или несколько процедур и вообще сделайте Вашу программу более структурированной.
  126. Module has no debug information (в модуле нет отладочной информации). Ошибка периода выполнения обнаружена в модуле (программе), который не имеет отладочной информации, и по этой причине Турбо-Паскаль не может указать соответствующий оператор. Перекомпилируйте модуль с включенной опцией {$D+} или воспользуйтесь опцией COMPILER/FIND ERROR, чтобы найти эту ошибку.
  127. Files must be var parameters (файлы должны передаваться как параметры-переменные). Вы пытаетесь передать процедуре или функции параметр-значение файлового типа. Параметры файлового типа должны быть параметрами-переменными.
  128. Too many conditional symbols (слишком много условных символов). Не хватает памяти для определения условных символов (слов, управляющих командами условной компиляции). Попытайтесь удалить некоторые символы или уменьшить их длину.
  129. Misplaced conditional directive (пропущена условная директива). Компилятор обнаружил директиву {$ELSE} или {$ENDIF} без соответствующих директив {$IFDEF}, {$IENDEF} или {$IFOPT}.
  130. ENDIF directive missing (пропущена директива ENDIF). Исходный файл закончился внутри конструкции условной компиляции. В исходном файле должно быть равное количество директив {$IFxxx} и {$ENDIF}.
  131. Error in initial conditional defines (ошибка в условных определениях).
    Исходные условия компиляции, указанные в опции
    OPTIONS/COMPILER/CONDITIONAL DEFINES являются недействительными. В Турбо-Паскале разрешается не указывать условия компиляции; если же приведено несколько условий, они должны разделяться точкой с запятой.
  132. Header does not match previous definition (заголовок не соответствует
    предыдущему определению). Возможные причины сообщения:

    • Заголовок процедуры или функции, указанный в интерфейсной секции, не соответствует заголовку в исполняемой части.
    • Заголовок процедуры или функции, указанный с помощью опережающего описания (FORWARD), не соответствует заголовку найденной далее одноименной процедуры или функции.
  133. Critical disk error (критическая ошибка диска). Во время компиляции
    произошла критическая ошибка диска (например, дисковод находится в
    состоянии "не готов").
  134. Cannot evaluate this expression (нельзя вычислить данное выражение). В
    выражении-константе или в отладочном выражении Вы пытаетесь
    использовать неподдерживаемые средства, например в описании константы
    пытаетесь использовать функцию SIN или вызвать в отладочном выражении
    определенную пользователем функцию.
  135. Expression incorrectly terminated (некорректное завершение выражения).
    Контекстуально в данном месте программы должен быть конец выражения
    или оператора.
  136. Invalid format specifier (неверный спецификатор формата). Используется
    неверный спецификатор формата или числовой аргумент спецификатора
    формата выходит за допустимые границы.
  137. Invalid indirect reference (недопустимая косвенная ссылка). Оператор пытается осуществить недопустимую косвенную ссылку. Например, Вы используете абсолютную переменную, базовая переменная которой в текущем модуле неизвестна, или используете программу типа INLINE , в которой делается ссылка на переменную, неопределенную в текущем модуле.
  138. Structured variable are not allowed here (здесь нельзя использовать переменную структурного типа). Делается попытка выполнить надпеременной структурного типа неподдерживаемую операцию. Например, Вы пытаетесь перемножить две записи.
  139. Cannot evaluate without System unit (нельзя вычислить выражение без модуля SYSTEM). Чтобы отладчик смог вычислить выражение, в файле TURBO.TPL должен содержаться модуль SYSTEM.
  140. Cannot access this symbol (нет доступа к данному символу). Как только вы скомпилируете программу, все множество её символов станет доступным. Однако к отдельным символам (например, к переменным) нельзя получить доступ, пока Вы не запустите программу.
  141. Invalid floating-point operation (недопустимая операция с плавающей запятой). При операции с плавающей запятой произошло переполнение или деление на ноль.
  142. Cannot compile overlay to memory (нельзя выполнить компиляцию оверлеев в память). Программа, использующая оверлеи, должна компилироваться на диск.
  143. Procedure or function variable expected (должна использоваться переменная процедурного типа). В этом контексте оператор получения адреса @ может использоваться только с переменной процедурного типа.
  144. Invalid procedure or function reference (недопустимая ссылка на процедуру или функцию). Возможные причины сообщения:Попытка вызова процедуры в выражении.Процедура или функция, использующая в качестве параметра вызов другой процедуры или функции, должна компилироваться в состоянии {$F+} и не
    может описываться с помощью ключевых слов INLINE или INTERRUPT .
  145. Cannot overlay this unit (этот модуль не может использоваться в качестве оверлейного). Попытка использовать в качестве оверлейного модуль, который не был скомпилирован с директивой {$О+}.

  146. Ошибки, возникающие во время выполнения программы

    Некоторые ошибки, обнаруженные во время выполнения программы, приводят к появлению на экране сообщения вида Runtime error nnn at xxxx:yyyy (ошибка времени выполнения nnn по адресу ххххгуууу), после чего программа завершает свою работу.
    Ошибки времени выполнения делятся на две категории: ошибки ввода-вывода (коды ошибок с 1 до 199) и грубые ошибки (коды ошибок с 200 до 255).

    Ошибки ввода-вывода вызывают завершение выполнения программы в случае, если оператор ввода-вывода был скомпилирован в режиме {$!+}. В режиме {$!-} продолжается выполнение программы, а ошибка возвращается функцией IORESULT. Коды ошибок 1-99 соответствуют кодам ошибок ДОС. 100-149 - ошибкам ввода вывода, 150-199 - критическим ошибкам, а 200-255 - фатальным ошибкам.

    Ошибки DOS:

    1. File not found (не найден файл). Ошибка генерируется процедурами RESET, APPEND, RENAME, или ERASE, если имя, присвоенное файловой переменной, указывает несуществующий файл.
    2. Path not found (путь не найден). Ошибка генерируется
      процедурами:
      • RESET, REWRITE, APPEND или ERASE, если имя,
      присвоенное файловой переменной, является недействительным
      или указывает на несуществующий подкаталог.
      • CHDIR, MKDIR или RMDIR, если путь является
      недействительным или указывает на несуществующий
      подкаталог.
    3. Too many open files (слишком много открытых файлов). Ошибка генерируется процедурами RESET, REWRITE или APPEND, если программа имеет слишком много открытых файлов. Операционная система ДОС не позволяет использовать более 15 открытых файлов для каждого процесса. Если Вы получили данное сообщение при наличии менее 15 открытых файлов, это может означать, что файл CONFIG.SYS не содержит параметр FILES = xxx или этот параметр задает слишком мало файлов. Увеличьте параметр FILES = xxx до какого-либо подходящего значения, например, до 20.
    4. File access defined (отказано в доступе к файлу). Данная ошибка генерируется процедурой:
      • RESET или APPEND, когда имя, присвоенное файловой
      переменной, указывает каталог или файл, доступный только для
      чтения, в то время как параметр FILEMODE файловой
      переменной содержит указание на запись данных.
      • REWRITE, если каталог заполнен или если имя, присвоенное
      файловой переменной, задает каталог или существующий файл,
      доступный только для чтения.
      • RENAME, если имя присвоенное файловой переменной,
      указывает каталог или если новое имя указывает существующий
      файл.
      • ERASE, если имя, присвоенное файловой переменной, указывает
      каталог или файл, доступный только для чтения.
      • MKDIR, если файл с тем же именем уже существует в каталоге, в
      котором создается подкаталог, и в этом каталоге нет места для
      подкаталога или путь к каталогу содержит имя логического
      устройства.
      • RMDIR, если каталог не является пустым, если путь не
      определяет каталог или если путь задает корневой каталог.
      • READ или BLOCKREAD в случае типизированного или
      нетипизированного файла, если файл не открыт для чтения.
      • WRITE или BLOCKWRITE для типизированного или
      нетипизированного файла, если этот файл не открыт для записи.
    5. Invalid file handle (недопустимый файловый канал). Данная ошибка генерируется, когда системному вызову ДОС передается недопустимый файловый канал. Эта ошибка не должна возникать в правильно работающей программе. Её появление является свидетельством того, что файловая переменная каким-либо образом испорчена.
    6. Invalid file access code (недействительный код доступа к файлам). Ошибка генерируется процедурами RESET или APPEND, если значение параметра FILEMODE в файловой переменной не является допустимым.
    7. Invalid drive number (недопустимый номер дисковода). Ошибка генерируется процедурой GETDIR, если номер дисковода не является допустимым.
    8. Cannot remove current directory (нельзя удалить текущий каталог). Ошибка генерируется процедурой RMDIR, если путь указывает текущий каталог.
    9. Cannot rename across drives (нельзя при переименовании указывать разные дисководы). Генерируется процедурой RENAME, если оба файла не находятся на одном и том же диске.
    Ошибки ввода-вывода:

    Если один из операторов компилируется с директивой {$!+}, то ошибка ввода-вывода приводит к прекращению выполнения программы. В состоянии {$!-} программа продолжает выполняться, а ошибка возвращается функцией IORESULT.

  147. Disk read error (ошибка чтения с диска). Генерируется процедурой READ в типизированном файле, если Вы пытаетесь осуществить считывание после конца файла.
  148. Disk write error (ошибка записи на диск). Ошибка генерируется процедурами CLOSE, WRITE, WRITELN, FLUSH, если диск заполнен.
  149. File not assigned (файлу не присвоено имя), ошибка генерируется процедурами RESET REWRITE , APPEND, RENAME и ERASE в случае, если файловой переменной не было присвоено имя файла с помощью обращения к процедуре ASSIGN.
  150. File not open (файл не открыт). Ошибка генерируется процедурами CLOSE, READ, WRITE, SEEK, EOF, FILEPOS, FILESIZE, FLUSH, BLOCKREAD, BLOCKWRITE, если файл не открыт.
  151. File not open for input (файл не открыт для ввода).ошибка генерируется процедурами READ, READLN, EOF, EOLN, SEEKEOF, или SEEKEOLN в текстовом файле, если файл не открыт для ввода.
  152. File not open for output (файл не открыт для вывода). Ошибка генерируется процедурами WRITE или WRITELN в текстовом файле, если файл не открыт для вывода.
  153. Invalid numeric format (неверный числовой формат). Ошибка генерируется процедурами READ или READLN, если числовое значение, считанное из текстового файла, не соответствует правильному числовому формату.
  154. Критические ошибки:

  155. Disk is write protected (диск защищен от записи).
  156. Unknown unit (неизвестный модуль).
  157. Drive not ready (дисковод находится в состоянии "не готов").
  158. Unknown command (неопознанная команда).
  159. CRC error in data (ошибка в исходных Данных).
  160. Bad drive requiest structure length (при обращении к диску указана неверная длина структуры).
  161. Disk seek error (ошибка при операции установки головок на диске).
  162. Unknown media type (неизвестный тип носителя).
  163. Sector not found (сектор не найден).
  164. Printer out of paper (закончилась бумага на принтере)
  165. Device write fault (ошибка при записи на устройство).
  166. Device read fault (ошибка при чтении с устройства).
  167. Hardware failure (сбой аппаратуры).
  168. Фатальные ошибки:
    Грубые ошибки всегда приводят к немедленной остановке программы.

  169. Division by zero (деление на нуль).
  170. Range check error (ошибка при проверке границ). Ошибка генерируется операторами, скомпилированными в состоянии {$R+}, при возникновении одной из следующих ситуаций:

    • Индексное выражение массива находилось вне допустимого диапазона.
    • Была осуществлена попытка присвоить переменной значение, находящееся вне диапазона переменной.
    • Была осуществлена попытка передать значение, находящееся вне допустимого диапазона, в качестве параметра процедуре или функции.

  171. Stack overflow error (переполнение стека). Эта ошибка генерируется при входе в процедуру или функцию, скомпилированную в режиме {$8+}, если нет достаточной области для размещения локальных переменных программы. Увеличьте размер стека, используя директиву компилятора {$М}.

  172. Heap overflow error (переполнение кучи). Эта ошибка
    генерируется процедурами NEW или GETMEM в случае, если в
    куче не хватает памяти требуемого размера.
  173. Invalid pointer operation (недействительная операция с указателем). Эта ошибка генерируется процедурами DISPOSE или FREEMEM, когда указатель имеет значение NIL или содержит адрес, лежащий за пределами динамически распределяемой области памяти.

  174. Floating point overflow (переполнение при операции с плавающей запятой).

  175. Floating point underflow (исчезновение порядка при операции с плавающей запятой). Эта ошибка генерируется только в том случае, если используется сопроцессор 8087/80287/80387 с управляющим словом, которое демаскирует ошибку исчезновения порядка. По умолчанию исчезновение порядка приводит к возвращению результата, равного нулю.

  176. Invalid floating point operation (недопустимая операция с плавающей запятой). Возможные причины сообщения:

    • Аргумент функции TRUNC или ROUND не может быть преобразован в целое число, находящееся внутри диапазона типа LONGINT (от -2147483648 до +2147483647).
    • Отрицательный аргумент функции SQRT (извлечение квадратного корня).
    • Аргумент функции LN (логарифм) равен нулю или имеет отрицательное значение.
    • Произошло переполнение стека сопроцессора.

  177. Overlay manager not installed (не установлена подсистема управления оверлеем). Ваша программа- вызывает оверлейную процедуру или функцию, а подсистема управления оверлеем не инициализирована. Вероятнее всего в программе отсутствует обращение к процедуре OVRINIT или обращение к этой процедуре завершилось с ошибкой. Нужно иметь в виду, что если в каком-либо из оверлейных модулей содержится раздел инициализации, то в программе необходимо создать дополнительный или использовать имеющийся неоверлейный модуль, вызывающий процедуру OVRINIT в своем разделе инициализации, и указать этот модуль в предложении USES перед любым из оверлейных модулей.
  178. Overlay file read error (ошибка чтения оверлейного файла). Когда подсистема управления оверлеем пыталась считать оверлей из оверлейного файла, произошла ошибка чтения.