П3.
СООБЩЕНИЯ И КОДЫ ОШИБОК
П3.1. СООБЩЕНИЯ
ОБ ОШИБКАХ ПЕРИОДА КОМПИЛЯЦИИ
Среда Турбо Паскаля дает исчерпывающую
информацию о характере и месте обнаруженной
компилятором ошибки. При обнаружении
ошибки среда автоматически загружает
в окно редактора исходный файл и помещает
курсор около того места, где в исходном
тексте обнаружена ошибка. При этом в
верхней строке редактора появляется
диагностическое сообщение. После нажатия
на любую клавишу (кроме FI) верхняя строка
восстанавливает свой первоначальный
вид и среда переходит к режиму
редактирования. Если после появления
сообщения об ошибке нажать F1, на экране
появится окно справочной службы с
детальной информацией об ошибке и
рекомендациями по ее устранению.
Некоторые ошибки в исходном тексте
обнаруживаются не сразу, а в ходе
продолжающегося контекстного разбора.
Например, несоответствие типов в
операторе присваивания не может быть
обнаружено до тех пор, пока не будет
вычислено целиком выражение в правой
части этого оператора. В таких случаях
ищите ошибку слева от курсора или в
предыдущей строке текста.
Ниже приводятся сообщения об ошибках
в том виде, в каком они появляются в
верхней строке редактора, а также перевод
сообщений справочной службы.
На экране после кода ошибки (цифры) нет
точки, поэтому ее нет и в соответствующем
месте текста.
1 Out of memory (Выход
за границы памяти).
Компилятору не хватает памяти. Имеется
ряд возможных решений этой проблемы:
-
если в опции COMPILE/DESTINATION установлено
значение MEMORY, замените эту опцию на
DISK; -
если в опции OPTIONS/LINKER/LINK BUFFER установлено
значение MEMORY, замените эту опцию т DISK; -
если Вы используете резидентные
обслуживающие программы, такие как
SIDEKICK, NORTON, удалите их из памяти; -
если Вы используете интегрированную
среду TVRBO.EXE, то попробуйте воспользоваться
компилятором ТРС.ЕХЕ — он занимает
меньше памяти.
Если ни одна из рекомендаций не помогает,
то, возможно, Ваша программа просто
слишком велика, чтобы компилировать ее
в таком объеме памяти. В этом случае Вы
должны разбить ее на два или более
модулей.
2 Identifier
expected (He указан
идентификатор).
В этом месте должен находиться
идентификатор. Возможно, Вы пытаетесь
использовать в качестве идентификатора
зарезервированное слово.
3 Unknown identifier (Неизвестный
идентификатор).
Этот идентификатор не был описан.
4 Duplicate identifier (Двойной
идентификатор).
Попытка дважды описать один и тот же
идентификатор.
5 Syntax error (Синтаксическая
ошибка).
В исходном тексте найден недопустимый
символ. Возможно, Вы забыли заключить
в апострофы строковую константу.
6 Error in real constant (Ошибка
в вещественной константе).
Синтаксис констант вещественного типа
описан в гл.4.
7 Error in integer constant
(Ошибка в целой константе).
Синтаксис констант целого типа описан
в гл.4. Учтите, что после целых действительных
чисел, превышающих диапазон представления
целых чисел (-2147483648..+2147483647), должны
ставиться точка и ноль, например,
12345678912.0.
8 String constant exceeds line
(Строковая константа превышает допустимые
размеры).
Вероятно, Вы забыли поставить апостроф
в конце строковой константы.
9 Too many nested files (Слишком
много вложенных файлов).
Компилятор допускает не более пяти
уровней вложенности включаемых файлов
(т.е. в исходном файле есть ссылка на
включаемый файл, в котором есть ссылка
на еще один включаемый файл и т.д.).
10 Unexpected end of file (He
найден конец файла).
Вы могли получить это сообщение об
ошибке по одной из следующих причин:
-
Ваш исходный файл закончился перед
последним END основного раздела операторов;
вероятно, в Вашей программе неодинаковое
количество операторов BEGIN и END; -
включаемый файл заканчивается в середине
раздела операторов; каждый раздел
операторов должен целиком помещаться
в одном файле; -
Вы не закончили комментарий.
11 Line too long (Слишком
длинная строка).
Максимальная длина строки, обрабатываемой
компилятором, равна 126 символам (обратите
внимание: редактор среды может обрабатывать
строки практически неограниченной
длины).
12 Type identifier expected
(Здесь нужен идентификатор типа).
Не указан тип идентификатора.
13 Too many open files (Слишком
много открытых файлов).
Появление этой ошибки означает, что
конфигурационный файл CONFIG.SYS операционной
системы не включает параметр FlLES=xx или
этот параметр указывает слишком мало
файлов. Увеличьте число файлов до нужного
значения, например, до 80.
14 Invalid file name (Неверное
имя файла).
Имя файла неверно или указан несуществующий
путь.
15 File not found (Файл не
найден).
Файл не был найден в просмотренных
каталогах.
16 Disk full (Диск
заполнен).
Удалите некоторые файлы или воспользуйтесь
новым диском.
17 Invalid compiler directive
(Неправильная директива компилятора).
Неверная буква в директиве компилятора,
один из параметров директивы компилятора
неверный, или Вы пользуетесь глобальной
директивой компилятора, когда компиляция
тела программы уже началась.
18 Too many files (Слишком
много файлов).
В компиляции программы или программного
модуля участвуют слишком много файлов.
Попытайтесь не использовать так много
файлов, например, объединяя включаемые
файлы или делая короче имена файлов.
19 Undefined type in pointer
definition (Неопределенный тип в объявлении
указателя).
Попытка объявить типизированный
указатель, связанный с ранее не объявленным
типом данных.
20 Variable identifier expected
(Отсутствует идентификатор переменной).
На этом месте должен быть идентификатор
переменной.
21 Error in type (Ошибка в
объявлении типа).
Объявление типа не может начинаться с
этого символа.
22 Structure too large (Слишком
большая структура).
Максимально допустимый размер любого
структурного типа составляет 65520 байт.
23 Set base type of range
(Базовый тип множества нарушает границы).
Базовый тип множества должен представлять
собой тип-диапазон с границами в пределах
от 0 до 255 или перечисляемый тип с не
более чем 256 значениями.
24 File components may not be files (Компонентами файла
не могут быть файлы) .
Конструкции типа file of file (файл файлов)
или file of object (файл объектов) не допускаются.
Нельзя объявлять любые структурные
типы, которые используют в качестве
компонентов объекты или файлы.
25 Invalid string length
(Неверная длина строки).
Объявляемая длина строки должна
находиться в диапазоне от 1 до 255.
26 Type mismatch (Несоответствие
типов).
Это сообщение может быть вызвано
следующими причинами:
-
несовместимые типы переменной и
выражения в операторе присваивания; -
несовместимые типы фактического и
формального параметров в обращении к
процедуре или функции; -
тип выражения не совместим с типом
индекса при индексировании массива; -
несовместимые типы операндов в выражении.
27 Invalid subrange base
type(Неправильный базовый тип для
типа-диапазона).
Допустимыми базовыми типами являются
все порядковые типы.
28 Lower bound greater than upper
bound (Нижняя граница больше верхней).
Описание типа-диапазона содержит
неправильные границы.
29 Ordinal type expected (Нужен
порядковый тип) .
Вещественные, строковые, структурные,
процедурные типы и указатели в данном
месте программы не допускаются.
30 Integer constant expected
(Нужна целая константа).
31 Constant expected (Нужна
константа).
32 Integer or real constant
expected (Нужна целая или вещественная
константа) .
33 Tуре identifier expected
(Нужен идентификатор типа)
34 Invalid function result type
(Неправильный тип результата функции)
Правильными типами результата функции
являются все простые типы, строковые
типы и указатели.
35 Label identifier expected
(Нужен идентификатор метки).
Метка не обозначена с помощью
идентификатора, как это требуется из
контекста программы.
36 BEGIN expected (Нужен
BEGIN).
37 END expected (Нужен END).
38 Integer expression expected
(Нужно выражение типа INTEGER).
39 Ordinal expression expected
(Нужно выражение перечисляемого типа).
40 Boolean expression expected
(Нужно выражение типа BOOLEAN).
41 Operand types do not match
operator (Типы операндов не соответствуют
операции).
Данная операция не может быть применена
к указанным операндам, например, ‘ А’ div
‘ 2 ‘ .
42 Error in expression (Ошибка
в выражении).
Данный символ не может участвовать в
выражении указанным образом. Возможно,
Вы забыли указать операцию между двумя
операндами.
43 Illegal assignment (Неверное
присваивание).
Файлам и нетипизированным переменным
нельзя присваивать значения. Идентификатору
функции можно присвоить значение только
внутри раздела операторов данной
функции.
44 Field identifier expected
(Нужен идентификатор поля).
Попытка использовать запись целиком в
том месте, где требуется ссылка на
какое-либо поле записи.
45 Object file too large
(Объектный файл слишком большой).
Турбо Паскаль не может компоновать
файлы .OBJ больше 64 Кбайт.
46 Undefined external
(Неопределенная внешняя процедура).
Внешняя процедура или функция не имеет
соответствующего определения PUBLIC в
объектном файле. Убедитесь, что Вы
указали все объектные файлы в директивах
{$L <имя .OBJ-файлa>} и проверьте написание
идентификаторов процедуры или функции
в файле . ASM.
47 Invalid object file record
(Неправильная запись объектного файла).
Файл .OBJ содержит неверную объектную
запись. Убедитесь, что данный файл
является действительно файлом .OBJ.
48 Code segment too large
(Сегмент кода слишком большой).
Максимальный размер кода программы или
программного модуля равняется 65520
байтам. Разбейте Вашу программу или
модуль на два или более модулей.
49 Data segment too large
(Сегмент данных слишком велик).
Максимальный размер сегмента данных
программы равен 65520 байтам, включая
данные, используемые программными
модулями. Если Вам нужно большее
количество глобальных данных, опишите
большие структуры с помощью указателей
и выделяйте для них память динамически
с помощью процедуры NEW.
50 DO expected (Нужен
оператор DO).
51 Invalid PUBLIC definition
(Неверное PUBLIC-определение).
Возможные причины сообщения:
-
данный идентификатор получил тип PUBLIC
с помощью соответствующей директивы
языка ассемблера, но не соответствует
описанию EXTERNAL в программе или программном
модуле Паскаля; -
две или более директивы PUBLIC языка
ассемблера определяют один и тот же
идентификатор; -
файлы .OBJ определяют символы PUBLIC, не
находящиеся в сегменте CODE.
52 Invalid EXTRN definition
(Неправильное EXTRN-определение).
Возможные причины сообщения:
-
программа на ассемблере ссылается с
помощью директивы EXTRN на идентификатор,
который не описан в программе на Паскале
и не был описан в интерфейсных секциях
используемых программных модулей; -
ассемблерная программа ссылается на
идентификатор, обозначающий абсолютную
переменную (т.е. определенную словом
ABSOLUTE); -
ассемблерная программа ссылается на
идентификатор процедуры или функции
типа INLINE.
53 Too many EXTRN definition
(Слишком много EXTRN-определений).
Турбо Паскаль не может обрабатывать
файлы .OBJпри более чем 256 определениях
EXTRN.
54 OF expected (Требуется
OF).
55 INTERFACE expected (Требуется
интерфейсная секция).
56 Invalid relocatable reference
(Неправильная перемещаемая ссылка).
Возможные причины сообщения:
-
файл .OBJ содержит данные и перемещаемые
ссылки в сегментах, отличных от CODE.
Например, Вы пытаетесь описать
инициализированные переменные в
сегменте DATA; -
файл .OBJ содержит ссылки с размерами в
байтах на перемещаемые символы. Такая
ошибка происходит в случае, если Вы
используете операторы HIGH и LOW с
перемещаемыми символами или если Вы
ссылаетесь в директивах DB на перемещаемые
символы; -
операнд ссылается на перемещаемый
символ, который не был определен в
сегменте CODE или в сегменте DATA; -
операнд ссылается на процедуру EXTRN или
функцию EXTRN со сдвигом, например, CALL
SortProc+8.
57 THEN expected (Требуется
THEN).
58 TO or DOWNTO expected
(Требуется ТО или DOWNTO).
59 Undefined forward
(Неопределенное опережающее описание).
Возможные причины сообщения:
-
была рписана процедура или функция в
интерфейсной секции программного
модуля, но ее определение отсутствует
в секции реализации; -
процедуры или функции были описаны с
помощью опережающего описания, но их
определение не найдено.
60 Too many procedures (Слишком
иного процедур).
Турбо Паскаль допускает не более 512
процедур или функций в одном модуле.
Если Вы компилируете программу, то
поместите некоторые процедуры или
функции в модули. Если Вы компилируете
модуль, то разбейте его на два или
несколько модулей.
61 Invalid typecast (Неверное
преобразование типа).
Возможные причины сообщения:
-
Вы пытаетесь разместить в памяти,
занимаемой некоторой переменной,
значение выражения другого типа э
случае, когда размер размещаемого
значения не равен размеру переменной; -
Вы пытаетесь осуществить преобразование
типа выражения, когда разрешается
только ссылка на переменную, процедуру
или функцию.
62 Division by zero (Деление
на ноль).
Предшествующая операция пытается
выполнить деление на ноль.
63 Invalid file type (Неверный
файловый тип).
Данный файловый тип не обслуживается
процедурой обработки файлов. Например,
процедура READLN используется для
типизированного файла или процедура
SEEK — для текстового файла.
64 Cannot Read or Write variables
of this type (Нет возможности считать или
записать переменные данного типа).
Нарушены следующие ограничения:
-
процедуры READ и READLN могут считывать
переменные символьного, целого,
действительного и строкового типов; -
процедуры WRITE и WRITELN могут выводить
переменные символьного, целого,
действительного, булевского и строкового
типов.
65 Pointer variable expected
(Нужно использовать переменную-указатель).
Предыдущая переменная должна быть
указателем.
66 String variable expected
(‘Нужна строковая переменная) .
Предшествующая переменная должна иметь
строковый тип.
67 String expression expected
(Нужно выражение строкового типа).
Предшествущее выражение должно иметь
строковый тип.
68 Circular unit reference
(Перекрестная ссылка модулей).
Два модуля ссылаются друг на друга:
Unit A;
Unit В;
Uses В;
Uses А;
…..
…..
69 Unit name mismatch
(Несоответствие имен программных
модулей).
Имя программного модуля, найденное в
файле .TPU, не соответствует имени,
указанному в предложении USES.
70 Unit version mismatch
(Несоответствие версий модулей).
Один или несколько программных модулей,
используемых данной программой, были
изменены после их компиляции. Воспользуйтесь
опцией COMPILE/MAKE или COMPILE/BUILD в интегрированной
среде или опциями /М или /В в компиляторе
ТРС, что позволит автоматически
скомпилировать программные модули,
нуждающиеся в перекомпиляции.
71 Duplicate unit name (Повторное
имя программного модуля).
Вы уже указали этот программный модуль
в операторе USES.
72 Unit file format error (Ошибка
формата файла модуля).
Файл .TPU не соответствует стандарту
Турбо Паскаля.
73 IMPLEMENTATION expected
(Отсутствует исполняемая часть модуля).
74 Constant and case types do not
match (Типы констант и тип выражения
оператора CASE не соответствуют друг
другу).
Тип константы оператора CASE не совместим
с выражением в операторе варианта.
75 Record variable expected
(Нужна переменная типа запись) .
Предшествующая переменная должна иметь
тип запись.
76 Constant out of range
(Константа нарушает границы).
Возможные причины сообщения:
-
Вы пытаетесь указать индекс массива,
выходящий за его границы; -
Вы пытаетесь присвоить переменной
значение, выходящее за границы, допустимые
для типа этой переменной; -
Вы пытаетесь передать в качестве
фактического параметра процедуре или
функции константу, выходящую за границы,
допустимые для типа соответствующего
формального параметра.
77 File variable expected (Нужна
файловая переменная).
Предшествующая переменная должна иметь
файловый тип.
78 Pointer expression expected
(Нужно выражение типа указатель).
Предшествующее выражение должно иметь
тип указателя.
79 Integer or real expression
expected (Нужно выражение вещественного
или целого типа).
Предшествующее выражение должно иметь
тип REAL или INTEGER.
80 Label not within current block
(Метка не находится внутри текущего
блока) .
Оператор GOTO не может ссылаться на метку,
находящуюся вне текущего блока.
81 Label already defined (Метка
уже определена).
Данная метка уже помечает оператор.
82 Undefined label in processing
statement part (Неопределенная метка в
предшествующем разделе операторов).
Данная метка была описана, и на нее
осуществлялась ссылка в предшествующем
разделе операторов, но она не указана
в тексте программы.
83 Invalid @ argument
(Неправильный аргумент операции @).
Правильными аргументами являются
идентификаторы переменных, процедур и
функций.
84 Unit expected (Нужно
кодовое слово UNIT).
85«;» expected (Нужно
указать»;») .
86«:» expected (Нужно
указать*:») .
87«,» expected (Нужно
указать»,») .
88 «(» expected (Нужно
указать «(»).
89«)» expected (Нужно
указать»)»).
90 «=» expected (Нужно
указать «=») .
91«:=» expected (Нужно
указать»:=»).
92 «[» or «(.» expected
(Нужно указать «[» или «(.»).
93«]» or «.)» expected (Нужно
указать»]» или».)»).
94».» expected (Нужно
указать».») ,
95«..» expected (Нужно
указать»..») .
96 Too many variables (Слишком
много переменных).
Нарушены следующие ограничения:
-
общий размер глобальных переменных,
описанных в программе или программном
модуле, не может превышать 64 Кбайт; -
размер локальных переменных, описанных
в процедуре или функции, не может
превышать 64 Кбайт. .
97 Invalid FOR control
variable(Неправильный параметр цикла
оператора FOR).
Параметр цикла оператора FOR должен быть
переменной порядкового типа, определенной
в разделе описаний текущей подпрограммы.
98 Integer variable expected
(Нужна переменная целого типа).
Предшествующая переменная должна иметь
целый тип.
99 File and procedure types are
not allowed here (Здесь не могут использоваться
файлы или процедурные типы).
Типизированная константа не может иметь
файловый или процедурный тип.
100 String length mismatch
(Несоответствие длины строки).
Длина строковой константы не соответствует
количеству элементов символьного
массива.
101 Invalid ordering of fields
(Неверный порядок полей).
Поля в константе типа запись должны
записываться в порядке их описания.
102 String constant expected
(Нужна константа строкового типа).
103 Integer or real variable
expected (Нужна переменная типа INTEGER или
REAL).
Предшествующая переменная должна иметь
целый или вещественный тип.
104 Ordinal variable expected
(Нужна переменная порядкового типа).
Предшествующая переменная должна иметь
порядковый тип.
105 INLINE error (Ошибка в
операторе INLINE).
Оператор «<» не допускается в сочетании
с перемещаемыми ссылками на переменные.
Такие ссылки всегда имеют размер в
слово.
106 Character expression expected
(Предшествующее выражение должно иметь
символьный тип).
107 Too many relocation items
(Слишком много перемещаемых Элементов).
Размер таблицы перемещения файла .ЕХЕ
превышает 64 Кбайта, что является верхним
пределом в Турбо Паскале. Если Вы
обнаружили эту ошибку, то это значит,
что программа просто слишком велика
для обработки компоновщиком Турбо
Паскаля. Возможно также, что она слишком
велика для выполнения в MS-DOS. В таком
случае нужно выделить в программе
основной раздел, который выполнял бы
обращение к двум или более вспомогательным
разделам с помощью процедуры ЕХЕС из
модуля DOS (см. гл.11).
108 Overflow in arithmetic
operator (Переполнение при выполнении
арифметического оператора).
Результат предыдущей арифметической
операции не лежит в диапазоне -2 146 483
648…+2 147 483 647. Исправьте операцию или
используйте вещественные типы вместо
целочисленных.
109 No enclosing FOR, WHILE or
REPEAT statment (Нет операторов, заканчивающих
операторы FOR, WHILE или REPEAT) .
Процедуры BREAK и CONTINUE не могут вызываться
вне тела оператора цикла.
110 Debug information table
overflow (Переполнение информационной
таблицы отладки).
Возможно, программа содержит более
65536 имен или 65536 строк. Отключите генерацию
таблиц отладки директивой компилятора
{$D-} или исправьте один или более модулей.
111
Ошибка с этим кодом не описана в версии
7.0 системы Турбо Паскаль.
112 CASE constant out of
range(Константа CASE нарушает допустимые
границы).
Целочисленные константы оператора CASE
должны находиться в диапазоне от -32768
до 32767.
113 Error in
statement (Ошибка
в
операторе).
Данный символ не может быть первым
символом в операторе.
114 Cannot call an interrupt
procedure (Невозможно вызвать процедуру
прерывания) .
Вы не можете непосредственно вызвать
процедуру обработки прерывания.
115
Ошибка с этим кодом не описана в версии
7.0 системы Турбо Паскаль.
116 Must be in
8087 mode to compile this (Для
компиляции
необходим
режим
8087) .
Данная программа может быть скомпилирована
только в режиме {$N+}. В состоянии {SN-}
операции с типами SINGLE, DOUBLE, EXTENDED и СОМР
не допускаются.
117 Target address not found
(Указанный адрес не найден).
Команда COMPILE/FIND ERROR в среде Турбо Паскаля
(или поиск с помощью опции /F в командной
строке компилятора ТРС.ЕХЕ) не обнаружила
оператор, соответствующий заданному
адресу.
118 Include
files are not allowed here (Здесь
не
допускаются
включаемые
файлы)
.
Раздел операторов должен целиком
размещаться в одном файле.
119 No inherited methods are
accessible here (В этом месте программы нет
унаследованных методов).
Вы используете зарезервированное слово
INHERITED вне метода объекта или в методе,
который не унаследован от родительского
объекта.
120
Ошибка с этим кодом не описана в версии
7.0 системы Турбо Паскаль. .
121 Invalid qualifier (Неверный
квалификатор).
Возможные причины сообщения:
-
Вы пытаетесь индексировать переменную,
которая не является массивом; -
Вы пытаетесь указать поля в переменной,
которая не является записью; -
Вы используете в качестве указателя
переменную, которая не является
указателем.
122 Invalid variable reference
(Недействительная ссылка на переменную).
Предыдущая конструкция удовлетворяет
синтаксису ссылки на переменную, но она
не указывает адрес памяти. Возможно Вы
вызываете функцию-указатель, но забываете
сослаться на результат с помощью знака
^.
123 Too many symbols'(Слишком
много символов) .
Программа или программный модуль
содержат более 64 Кбайт символов. Если
Вы компилируете программу с директивой
{$D+}, то попробуйте отключить эту директиву
или разбейте программу на несколько
модулей.
124 Statement part too large
(Слишком большой раздел операторов).
Турбо Паскаль ограничивает размер
раздела операторов до величины примерно
24 Кбайта. Если Вы обнаружили эту ошибку,
поместите части раздела операторов в
одну или несколько процедур и вообще
сделайте Вашу программу более
структурированной.
125
Ошибка с этим кодом не описана в версии
7.0 системы Турбо Паскаль.
126 Files must be var parameters
(Файлы должны передаваться как
параметры-переменные) .
Вы пытаетесь передать процедуре или
функции параметр-значение файлового
типа. Параметры файлового типа должны
быть параметрами-переменными.
127 Too many conditional symbols
(Слишком много условных символов).
Недостаточно памяти для определения
условных символов (слов, управляющих
командами условной компиляции).
Попытайтесь удалить некоторые символы
или уменьшить их длину.
128 Misplaced conditional
directive (Пропущена условная директива).
Компилятор обнаружил директиву {$ELSE}
или {$ENDIF} без соответствующих директив
{$IFDEF}, {$IFNDEF} или {$IFOPT}.
129 ENDIF
directive missing (Пропущена
директива
ENDIF).
Исходный файл закончился внутри
конструкции условной компиляции. В
исходном файле должно быть равное
количество директив {$IFxxx} и {$ENDIF}.
130 Error in
initial conditional defines (Ошибка
в
условных
определениях).
Исходные условные символы.указанные в
опции OPTIONS/COMPILER /CONDITIONAL DEFINES являются
недействительными. Турбо Паскаль требует
нуля или более идентификаторов,
разделенных пробелами, запятыми или
точками с запятой.
131 Header does not match
previous definition (Заголовок не соответствует
предыдущему определению).
Возможные причины сообщения:
-
заголовок процедуры или функции,
указанный в интерфейсной секции, не
соответствует заголовку в исполняемой
части. -
заголовок процедуры или функции,
указанный с помощью опережающего
описания FORWARD, не соответствует заголовку
найденной далее одноименной процедуры
или функции.
132 Critical disk error
(Критическая ошибка диска).
Во время компиляции произошла критическая
ошибка диска (например, дисковод находится
в состоянии «не готов»).
133 Cannot
evaluate this expression (Нельзя
вычислить
данное
выражение).
В выражении-константе или в отладочном
выражении Вы пытаетесь использовать
неподдерживаемые средства, например,
в описании константы пытаетесь
использовать функцию SIN или вызвать в
отладочном выражении определенную
пользователем функцию.
134 Expression incorrectly
terminated (Некорректное завершение
выражения).
Контекстуально в данном месте программы
должен быть конец выражения или оператора.
135 Invalid format specifier
(Неверный спецификатор формата).
Используется неверный спецификатор
формата или числовой аргумент спецификатора
формата выходит за допустимые границы.
136 Invalid indirect reference
(Недопустимая косвенная ссылка).
Оператор пытается осуществить недопустимую
косвенную ссылку. Например, Вы используете
абсолютную переменную, базовая переменная
которой в текущем модуле неизвестна,
или используете программу типа INLINE, в
которой делается ссылка на переменную,
неопределенную в текущем модуле.
137 Structured variable are not
allowed here (Здесь нельзя использовать
переменную структурного типа).
Делается попытка выполнить над переменной
структурного типа неподдерживаемую
операцию. Например, Вы пытаетесь
перемножить две записи.
138 Cannot evaluate without
System unit (Нельзя вычислить выражение без
модуля SYSTEM).
Чтобы отладчик смог вычислить выражение,
в файле TURBO.TPL должен содержаться модуль
SYSTEM.
139 Cannot access this symbol
(Нет доступа к данному символу).
Как только Вы скомпилируете программу,
все множество ее символов становится
доступным. Однако к отдельным символам
(например, к переменным) нельзя получить
доступ, пока Вы не запустите программу.
140 Invalid floating-point
operation (Недопустимая операция с плавающей
запятой) .
При выполнении операции с плавающей
запятой произошло переполнение или
деление на ноль.
141 Cannot compile overlay to
memory (Нельзя выполнить компиляцию
оверлейных модулей в память).
Программа, использующая оверлейные
модули, должна компилироваться на диск.
142 Procedure or function
variable expected (Должна использоваться
переменная процедурного типа).
В этом контексте оператор получения
адреса @ может использоваться только с
переменной процедурного типа.
143 Invalid
procedure or function reference (Недопустимая
ссылка
на
процедуру
или
функцию).
Возможные причины сообщения:
-
Вы пытаетесь вызвать процедуру в
выражении; -
процедура или функция, использующаяся
в качестве параметра вызова другой
процедуры или функции, должна
компилироваться в состоянии {$F+} и не
может описываться с помощью
зарезервированных слов INLINE или INTERRUPT.
144 Cannot overlay this unit
(Этот модуль не может использоваться в
качестве оверлейного).
Попытка использовать в качестве
оверлейного модуль, который не был
скомпилирован с директивой {$O+}.
145 Too many nested scopes
(Слишком много вложений).
В программе не может быть больше 512
вложений с не более чем 128 вложениями в
каждом модуле. Вложениями считаются:
-
каждый модуль в предложении USES;
-
каждая вложенная запись в типе RECORD;
-
каждый вложенный оператор WITH.
146 File access denied (Отказано
в доступе к файлу).
Возможные причины:
-
Вы пытаетесь использовать файл с
атрибутом «только для чтения» в качестве
выводного файла; -
Вы используете имя каталога вместо
имени выводного файла.
147 Object
type expected (Здесь
должен
быть
тип
OBJECT).
Правила раздела!
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] … [/code] или [code=pas] … [/code].
3. Прежде чем задавать вопрос, см. «FAQ» и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное — это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) — для этого есть отдельный раздел!
Error 116: Must Be In 8087 Mode To Compile This |
9.10.2004 2:51 Сообщение |
|
Гость |
Писал прогу на заказ, через интернет, локально у меня все работает, В книге по турбопаскалю дано: Данная программа может быть скомпилирована только в режиме {N+}. предлагал ему вставит {N+} в начале программы и откомпилировать что посоветуете ? P.S.: заранее спасибо всем откликнувшимся…. |
|
|
xds |
9.10.2004 6:15 Сообщение |
N337
Группа: Пользователи Репутация: 26 |
Хотелось бы взглянуть на код… ——————— The idiots are winning. |
|
|
Altair |
9.10.2004 10:23 Сообщение |
Ищущий истину
Группа: Пользователи Репутация: 45 |
xds, хех, кто-же тебе код даст, если прога писалась за бабаки. Цитата предлагал ему вставит {N+} в начале программы и откомпилировать Во первых не {N+} а {$N+} ——————— Помогая друг другу, мы справимся с любыми трудностями! |
|
|
Guest |
9.10.2004 19:56 Сообщение |
Гость |
спасибо, попробую… |
|
|
Спаситель |
26.01.2012 3:32 Сообщение |
Гость |
Попробуйте {$N+} |
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
Связь с администрацией: bu_gen в домене octagram.name
- Категория: Turbo Pascal
-
Опубликовано: 18 января 2014
Сообщения об ошибках компиляции в среде Turbo Pascal
В этом материала сообщения об ошибках компиляции приведены на русском языке. Удобной Вам работы в среде Turbo Pascal.
1. Недостаточно оперативной памяти. Следует воспользоваться стандартными средствами расширения оперативной памяти (удаление лишних драйверов, других резидентных программ). Можно также воспользоваться размещением скомпилированного файла на диске, используя для этого команду меню CompileDestination, а также поместить буфер компоновщика на диске, используя команду меню OptionsLinkerLink buffer. Можно также варьировать размерами стека и динамической памяти, используя команду меню OptionsMemory sizes, а также воспользоваться рядом других способов, о которых сказано в
справочной системе.
2. В данном месте программы должен находиться идентификатор.
3. Неизвестный (не определенный ранее) идентификатор.
4. Идентификатор определяется второй раз.
5. Синтаксическая ошибка (нарушены правила написания
предложения).
6. Ошибка в изображении вещественного числа.
7. Ошибка в изображении целого числа.
8. Строковая константа превышает допустимый размер (255 символов). Вероятно, пропущена закрывающая кавычка.
10. Неожиданное завершение программы. Вероятно, не сбалансировано число зарезервированных слов begin и end, неправильно
оформлен файл, добавляемый директивой {$1 filename}, не закрыт какой-либо комментарий.
11. Компилируемая строка превышает 127 символов.
12. В данном месте программы требуется идентификатор типа.
13. Попытка открыть в среде программирования количество файлов больше, чем допускается в операционной системе.
14. Неправильное имя или путь файла.
15. Файл не найден ни в текущем, ни в заданном каталоге.
16. Диск, куда записывается информация, не имеет свободного места.
17. Ошибка в директиве компилятора, или она используется в недопустимом месте (глобальная директива – не в начале программы).
18. Слишком много файлов используется при компиляции. Следует попробовать подключить часть файлов с помощью директивы {$1 filename} или уменьшить имена файлов.
19. При определении типа-указателя используется тип, нигде не определенный.
20. В данном месте программы должен быть идентификатор переменной.
21. Неправильно определен тип.
22. Размер данных более 65520 байт.
23. Тип-множество имеет более 256 элементов или содержит элементы с порядковыми номерами не в пределах 0..255.
24. Компонентами файловой переменной не могут быть файлы или объекты.
25. Размер строки не в пределах от 1 до 255.
26. Несовместимые типы в операциях присвоения, в выражениях, у индекса массива, тип фактического параметра при обращении к подпрограмме неэквивалентен типу формального параметра.
27. В типе-диапазоне может использоваться только порядковый тип.
28. В типе-диапазоне нижняя граница больше, чем верхняя.
29. Здесь может использоваться только порядковый тип.
30. Здесь можно использовать только константу целого типа.
31. Здесь можно использовать только константу.
32. Здесь можно использовать только числовую константу (целую или вещественную).
33. Здесь должен быть тип-указатель.
34. Недопустимый тип функции.
35. Здесь должен быть идентификатор метки.
36. Здесь ожидается зарезервированное слово begin.
37. Здесь ожидается зарезервированное слово end.
38. Выражение должно быть целого типа.
39. Выражение должно быть порядкового типа.
40. Выражение должно быть логического типа.
41. В операторе не могут быть операнды такого типа.
42. Ошибка в выражении (например, пропущен знак операции между операндами).
43. Неправильное присвоение значения переменной (например, файловой переменной присваивается значение или функции
присваивается значение вне ее значения).
44. Требуется значение поля записи.
45. Объектный файл больше, чем 64 Кбайт.
46. Не найдена внешняя подпрограмма (возможно, пропущена директива {$L filename}).
47. Файл, по-видимому, не является объектным (с расширением .obj).
48. Кодовый сегмент больше 65520 байт. Следует выделить часть в отдельный модуль.
49. Сегмент данных больше 65520 байт. Часть данных нужно разместить в динамической памяти с помощью указателей.
50. Здесь следует поместить зарезервированное слово do.
51. Неправильное использование директивы PUBLIC в подпрограмме, написанной на ассемблере.
52. Неправильное использование директивы EXTRN в подпрограмме, написанной на ассемблере.
53. В объектном файле больше 256 директив EXTRN.
54. Здесь следует поместить зарезервированное слово of.
55. В модуле пропущен интерфейс (нет зарезервированного слова
interface).
56. Неправильная перемещаемая ссылка в подпрограмме, написанной
на ассемблере.
57. Здесь следует поместить зарезервированное слово then.
58. Здесь следует поместить зарезервированные слова to или downto.
59. Заголовок подпрограммы объявлен с директивой forward, но сама
подпрограмма далее не описана; заголовок подпрограммы объявлен в
интерфейсе модуля, но сама подпрограмма в исполнительной части
модуля не описана.
61. При преобразовании типа величины исходного и
результирующего типа имеют различный размер.
62. Деление на нуль.
63. Эта подпрограмма работы с файлом не поддерживает данный тип
файла.
64. Недопустимый тип параметра у подпрограмм Read, ReadLn, Write
или WriteLn.
65. Эта переменная должна быть типа-указателя.
66. Эта переменная должна быть строкового типа.
67. Это выражение должно быть строкового типа.
68. Циклическая ссылка модулей друг на друга в интерфейсных
частях.
69. Имена модуля и файла, в котором он находится, не совпадают.
70. Один или несколько используемых модулей изменены после их
компиляции.
71. Внутренний стек компилятора переполнен из-за глубокой
вложенности операторов.
72. Ошибка в формате скомпилированного модуля. Возможно, он был
скомпилирован предыдущей версией пакета.
73. Пропущена исполнительная часть модуля не(т
зарезервированного слова implementation).
74. Недопустимое значение константы, используемой в операторе
CASE.
75. Переменная должна быть типа-записи или типа-объекта.
76. Используемая константа имеет недопустимое значение.
77. Эта переменная должна быть файлового типа.
78. Это выражение должно быт типа-указателя.
79. Это выражение должно быть числовым ц(елым или
вещественным).
29
80. Метка не из данного блока.
81. Меткой уже помечен один оператор.
82. Метка объявлена, но ни один оператор ей не помечен.
83. Неправильный аргумент у операции “@”.
84. В модуле пропущено зарезервированное слово unit.
85. Здесь пропущена точка с запятой “;”
86. Здесь пропущено двоеточие “:”
87. Здесь пропущена запятая “,”
88. Здесь пропущена открывающая круглая скобка “(”.
89. Здесь пропущена закрывающая круглая скобка “)”.
90. Здесь пропущен знак равенства “=”
91. Здесь пропущен знак присваивания “:=”
92. Здесь пропущена открывающая квадратная скобка “[” или круглая
скобка с точкой “(”.
93. Здесь пропущена закрывающая квадратная скобка “]” или круглая
скобка с точкой “.)”
94. Здесь пропущена точка .
95. Здесь пропущены две точки ..
96. Размер глобальных переменных программы или локальных
переменных подпрограммы превышает 64 Кбайт.
97. Неправильный параметр цикла FOR.
98. Здесь должна быть переменная целого типа.
99. Типизированная константа не может быть файлового или
процедурного типа.
100. Длина строковой константы не соответствует размеру массива
символов.
101. Порядок следования полей в типизированных константах типа-
записи или типа-объекта должен соответствовать порядку их следования
при объявлении типа.
102. Здесь должна быть строковая константа.
103. Здесь должна быть числовая переменная ц(елого или
вещественного типа).
104. Здесь должна быть переменная порядкового типа.
105. В подпрограмме с директивой inline неправильно использован
указатель размера <.
106. Здесь должно быть выражение символьного типа.
107. Основная часть программы слишком велика. Следует часть ее
выделить в подпрограммы.
108. Переполнение при выполнении арифметической операции с
числами целого типа. Следует скорректировать вычисления или перейти к
вещественным числам.
109. Стандартные процедуры Break или Continue используются вне
циклов FOR, WHILE или REPEAT.
93
110. Превышены допустимые размеры таблицы отладочной
информации (больше 64 Кбайт). Следует часть модулей скомпилировать с
директивой {$D-}.
112. Целая константа в операторе CASE должна быть в пределах от —
32768 до 32767.
113. Ошибка в операторе.
114. Нельзя непосредственно вызвать процедуру прерывания
116. Типы Single, Double, Extended и Comp можно использовать только
при наличии арифметического сопроцессора (программа должна быть
скомпилирована с директивой {$N+}).
117. При использовании команды меню SearchFind error нельзя найти
оператор для заданного адреса.
118. В данном месте нельзя использовать файл, подключаемый
директивой {$I filename}. Оператор должен полностью находиться в
одном файле.
119. Зарезервированное слово inherited использовано не внутри метода
объекта или внутри метода объекта, у которого нет предков.
121. Неправильный квалификатор (попытка задать индекс у параметра,
не являющегося массивом, указание поля, которого нет в записи, попытка
обратиться по адресу к данным, если переменная не является указателем).
122. Неправильная ссылка на переменную (вероятно, взят указатель, а
не величина, на которую он указывает).
123. В программе введено символов больше, чем 64 Кбайт. Следует
попробовать разделить программу на части.
124. Тело программы не может быть более 24 Кбайт. Нужно выделить
одну или несколько подпрограмм.
126. Файловую переменную можно передавать в подпрограмму только
как параметр-переменную.
127. Слишком много символов у параметров условной компиляции.
128. Несоответствие в директивах условной компиляции.
129. Пропущена директива компилятора {$ENDIF}.
130. Параметры для условной компиляции, заданные строкой ввода
OptionsCompilerConditional defines заданы неверно.
131. Полный заголовок подпрограммы не соответствует заголовку,
объявленному с директивой forward, или заголовку в интерфейсной части
модуля.
133. Неправильное константное выражение или выражение,
используемое в окнах отладки
134. Неправильно завершено выражение.
135. Неправильный формат.
136. Неправильная косвенная ссылка.
137. Недопустимая операция над структурированными данными.
138. Файл Turbo.tpl не включает модуль System.
139. Нельзя получить этот символ.
140. Переполнение при операциях с вещественными числами или
деление на нуль.
141. Программа, использующая оверлеи, должна быть скомпилирована
на диск.
142. Здесь должен быть указатель или переменная процедурного типа.
143. Неправильный вызов процедуры или функции.
144. Попытка использовать модуль в оверлейной программе, который
не скомпилирован с директивой {$0+}.
146. Неправильное обращение к файлу (например, запись в файл,
применяемый только для чтения, используется имя каталога, а не файла).
147. Здесь должна быть переменная типа-объекта.
148. Нельзя определять переменную типа-объекта в подпрограмме.
149. Этот метод должен быть виртуальным п(ропущено
зарезервированное слово virtual).
150. Здесь должен быть идентификатор метода.
151. Конструктор не может быть виртуальным.
152. Здесь должен быть идентификатор конструктора.
153. Здесь должен быть идентификатор деструктора.
154. Процедура Fail вызвана не из конструктора, что недопустимо.
155. Неправильный набор операндов у команды ассемблера.
156. В команде ассемблера должна быть ссылка на память.
157. Нельзя складывать или вычитать перемещаемые операнды в
ассемблере.
158. Неправильная комбинация регистров.
159. Нельзя использовать команды для компьютеров 80286/80287.
160. Этот параметр нельзя использовать как операнд в команде
ассемблера.
162. Здесь должно быть зарезервированное слово asm.
Сообщения об ошибках времени выполнения
1. Вызов несуществующей функции DOS.
2. Файл не найден.
3. Не найден каталог.
4. Нельзя открыть столько файлов. Число открываемых файлов
определяется в CONFIG.SYS.
5. Неправильное обращение к файлу.
6. Неправильный описатель файла.
12. Неправильный режим доступа к файлу
15. Неправильный номер накопителя.
16. Нельзя удалить текущий каталог.
17. Нельзя переименовать файл, изменив номер накопителя.
18. Процедуры FindFirst или FindNext не нашли файла.
100. Попытка чтения из файла после достижения его конца (для
типизированных файлов).
101. Ошибка при записи на диск, если он заполнен.
102. Попытка работать с файлом, для которого не выполнена
процедура Assign.
103. Файл не открыт.
104. Файл не открыт для чтения (для текстовых файлов).
105. Файл не открыт для записи (для текстовых файлов).
106. Недопустимый формат целого числа.
150. Попытка записать на диск, защищенный от записи.
151. Ошибка, формируемая драйвером.
152. Внешнее устройство не готово.
154. MS D OS о пределила ошибку в записанных на внешнее устройство
данных.
156. Ошибка, формируемая MS DOS при поиске данных на диске.
157. MS D OS н е может распознать тип диска.
158. Ошибка, формируемая MS DOS при поиске данных на диске.
159. В принтере отсутствует бумага.
160. Ошибка на диске при записи.
161. Ошибка на диске при чтении.
162. Ошибка устройства ввода-вывода.
200. Деление числа на нуль.
201. Ошибка при контроле допустимости значения.
202. Переполнение стека.
203. Переполнение динамической памяти.
204. Применение процедур Dispose или FreeMem к незаданному
указателю.
205. Переполнение вещественного числа.
206. Потеря значимости вещественного числа.
207. Неправильная операция с вещественным числом.
208. Диспетчер оверлеев не инициализирован н(е выполнена
стандартная процедура OvrInit)
209. Ошибка при чтении оверлейного файла.
210. Объект не инициализирован.
211. Вызван абстрактный метод.
215. Переполнение при арифметической операции.
216. Неправильная попытка записать информацию в память.
У вас нет прав для отправки комментариев.
Войдите под своим логином.