Ошибка 20 предполагается идентификатор переменной

В этом разделе описаны все ошибки, которые могут случиться при проверке типов.

Сообщение

Описание

Error: Type mismatch

Это может произойти во многих случаях:

Назначенная вами переменная отличается от типа, который используется в выражении

Вы вызываете функцию или процедуру с параметрами, которые несовместимы с параметрами в объявлении функции или процедуры

Error: Incompatible types: got «Сообщ1» expected «Сообщ2»

Невозможно преобразование между двумя типами. Ещё одна причина – типы объявлены в разных объявлениях:

Var A1 : Array[1..10] Of Integer;
  A2 : Array[1..10] Of Integer;
Begin
A1:=A2; {Этот оператор также даёт такую ошибку, потому
          что выполняется строгая проверка типов Pascal}
End.

Error: Type mismatch between «Сообщ1» and «Сообщ2»

Типы не являются эквивалентными.

Error: Type identifier expected

Идентификатор не является типом, или вы забыли указать идентификатор type.

Error: Variable identifier expected

Это случается, если вы помещаете константу в процедуру (такую как Inc или Dec), в то время как процедура требует переменной. Для таких процедур в качестве параметров можно помещать только переменные.

Error: Integer expression expected, but got «Сообщение»

Компилятор ожидает выражения типа integer, но получает другой тип.

Error: Boolean expression expected, but got «Сообщение»

Выражение должно быть типа boolean. Оно должно возвращать True или False.

Error: Ordinal expression expected

Выражение должно быть порядкового типа, то есть максимум типа Longint. Эта ошибка случается, например, если вы указали второй параметр процедуры Inc или Dec, который не соответствует порядковому типу.

Error: pointer type expected, but got «Сообщение»

Переменная или выражения не являются указателем. Это случается, если вы помещаете переменную, которая не является указателем, в New или Dispose.

Error: class type expected, but got «Сообщение»

Переменная или выражение не являются типом class. Это обычно случается, если

1.Родительский класс в объявлении класса не является классом

2.Обработчик исключения (On) cсодержит идентификатор типа, который не является классом.

Error: Can’t evaluate constant expression

Эта ошибка может случиться, если границы объявленного вами массива не обозначены порядковыми константами.

Error: Set elements are not compatible

Вы пытаетесь выполнить операцию с двумя множествами, в то время как типы элементов этих множеств не являются одинаковыми. Базовые типы множеств должны быть одинаковыми при объединении.

Error: Operation not implemented for sets

Некоторые бинарные операторы не определены для множеств. Это операторы: div, mod, **, >= и <=. Последние два могут быть определены для множеств в будущих версиях.

Warning: Automatic type conversion from floating type to COMP which is an integer type

Обнаружено явное преобразование типов из real в comp. s encountered. Поскольку comp – это 64-битное целое число, то это может вызвать ошибку.

Hint: use DIV instead to get an integer result

Если подсказки включены, то целочисленное деление с оператором ‘/‘ приведёт к этому сообщению, потому что результатом будет вещественный тип.

Error: string types doesn’t match, because of $V+ mode

Если выполняется компиляция в режиме {$V+}, то строка, передаваемая вами в качестве параметра, должна быть точно такого же типа, как параметр процедуры.

Error: succ or pred on enums with assignments not possible

Если вы объявили перечисляемый тип в стиле С, например, так:

Tenum = (a,b,e:=5);

То вы не сможете использовать функции Succ или Pred с этим перечислением.

Error: Can’t read or write variables of this type

Вы пытаетесь прочитать или записать переменную из файла или в файл текстового типа, который не поддерживает тип переменной. Только целочисленные типы, вещественные, pchars и strings можно читать из файла или записывать в текстовый файл. Логические переменные можно только записывать в текстовый файл.

Error: Can’t use readln or writeln on typed file

readln и writeln можно использовать только с текстовыми файлами.

Error: Can’t use read or write on untyped file.

read и write допускаются только для текстовых или типизированных файлов.

Error: Type conflict between set elements

Это означает, что не менее одного элемента множества имеют неправильный тип.

Warning: lo/hi(dword/qword) returns the upper/lower word/dword

Free Pascal поддерживает перегруженную версию lo/hi для longint/dword/int64/qword, которые возвращают наименьшее/наибольшее (результат типа слово/двойное слово) значение аргумента. Turbo Pascal позволяет использовать 16-битные lo/hi, которые возвращают биты 0..7 для lo и биты 8..15 для hi. Если вы хотите получить поведение, аналогичное Turbo Pascal, вы должны использовать приведение типов к word или integer.

Error: Integer or real expression expected

Первый аргумент для str должен быть типа real или integer.

Error: Wrong type «Сообщение» in array constructor

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

Error: Incompatible type for arg no. Сообщ1: Got «Сообщ2», expected «Сообщ3»

Вы пытаетесь передать неправильный тип в указанный параметр.

Error: Method (variable) and Procedure (variable) are not compatible

Вы не можете связать метод с процедурной переменной или процедуру с указателем на метод.

Error: Illegal constant passed to internal math function

Аргумент-константа, переданный в функцию ln или sqrt выходит за пределы диапазона для этой функции.

Error: Can’t take the address of constant expressions

Невозможно получить адрес выражения-константы, потому что оно не записывается в память. Вы можете попробовать сделать типизированную константу. Эта ошибка может также появиться, если вы пытаетесь поместить свойство в параметр var.

Error: Argument can’t be assigned to

Только выражение, которое может быть в левой части присваивания, может быть передано как вызов по ссылке аргумента. Примечание: Свойства могут использоваться в левой части присваивания, тем не менее, они не могут использоваться как аргументы.

Error: Can’t assign local procedure/function to procedure variable

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

Error: Can’t assign values to an address

Не допускается присваивать значение адресу переменной, константы, процедуры или функции. Вы можете попытаться выполнить компиляцию с опцией -So, если идентификатор является процедурной переменной.

Error: Can’t assign values to const variable

Не допускается присваивать значение переменной, которая объявлена как константа. Обычно параметр объявляется как константа. Чтобы иметь возможность изменять значение, передавайте параметр по значению или параметр по ссылке (используя var).

Error: Array type required

Если вы хотите получить доступ к переменной, используя индекс ‘[<x>]‘, то тип должен быть массивом. В режиме FPC указатель также допускается.

Error: interface type expected, but got  «»Сообщение»

Компилятор ожидал для нумератора имя типа интерфейса, но получил нечто другое. Следующий код приведёт к этой ошибке:

Type
TMyStream = Class(TStream,Integer)

Hint: Mixing signed expressions and longwords gives a 64bit result

Если вы делите (или вычисляете модуль) выражения со знаком с типом longword (или наоборот), или если вы имеете переполнение и/или включена проверка диапазона и используется арифметическое выражение (+, -, *, div, mod), в котором оба числа со знаком и появляется longwords, то всё это вычисляется как 64-битная арифметическая операция, которая медленнее, чем обычная 32-битная. Вы можете избежать этого при помощи преобразования типа одного из операндов в подходящий для результата и другого операнда.

Warning: Mixing signed expressions and cardinals here may cause a range check error

Если вы используете бинарный оператор (and, or, xor) и один из операндов — это longword, в то время как другой – это выражение со знаком, то, если проверка диапазона включена, вы можете получить ошибку проверки диапазона, потому что в этом случае оба операнда преобразуются в longword перед выполнением операции. Вы можете избежать этого при помощи преобразования типа одного из операндов в подходящий для результата и другого операнда.

Error: Typecast has different size (Сообщ1 -> Сообщ2) in assignment

Преобразование типа при отличающихся размерах не допускается, когда переменная используется в присваивании.

Error: enums with assignments can’t be used as array index

Если вы объявили перечисляемый тип, который имеет С-подобные присваивания, как показано ниже:

Tenum = (a,b,e:=5);

Вы не можете использовать его как индекс массива.

Error: Class or Object types «Сообщ1» and «Сообщ2» are not related

Выборка из одного класса в другой, в то время как класс/объект не являются связанными. Вероятно, это ошибка ввода.

Warning: Class types «arg1» and «arg2» are not related

Выборка из одного класса в другой, в то время как класс/объект не являются связанными. Вероятно, это ошибка ввода.

Error: Class or interface type expected, but got «arg1»

Компилятор ожидал имя класса или интерфейса, но получил другой тип или идентификатор.

Error: Type «Сообщение» is not completely defined

Эта ошибка случается, если тип не завершён, например, тип pointer, который указывает на неопределённый тип.

Warning: String literal has more characters than short string length

Размер строки-константы, которая связана с shortstring, больше максимального размера для shortstring (255 символов).

Warning: Comparison is always false due to range of values

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

Warning: Comparison is always true due to range of values

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

Warning: Constructing a class «Сообщ1» with abstract method «Сообщ2»

Например, создаваемый класс содержит неисполняемые абстрактные методы. Имеется вероятность, что случится ошибка времени исполнения 211 в коде, если эта процедура будет когда-либо вызвана. Все абстрактные методы должны быть перегружаемыми.

Hint: The left operand of the IN operator should be byte sized

Левый операнд в операторе IN не является порядковым или перечислением, который помещается в 8 бит. Это может привести к ошибке проверки диапазона. На текущий момент оператор in поддерживает левый оператор только в пределах байта. В случае с перечислениями, размер элемента перечисления может изменяться опциями {$PACKENUM} или {$Zn}.

Warning: Type size mismatch, possible loss of data / range check error

Это случается, когда меньшему типу присваивается значение, большее, чем исходный тип. Это означает, что может произойти ошибка проверки диапазона или уменьшение значения.

Hint: Type size mismatch, possible loss of data / range check error

Это случается, когда меньшему типу присваивается значение, большее, чем исходный тип. Это означает, что может произойти ошибка проверки диапазона или уменьшение значения.

Error: The address of an abstract method can’t be taken

Не найдено тело абстрактного метода, поэтому адрес абстрактного метода не может быть назначен.

Error: Assignments to formal parameters and open arrays are not possible

Вы пытаетесь присвоить значение формальному параметру (нетипизированный var, const или out), или открытому массиву.

Error: Constant Expression expected

Компилятор ожидал выражение-константу, но получил выражение- переменную.

Error: Operation «Сообщ1» not supported for types «Сообщ2» and «Сообщ3»

Операция не допускается для указанных типов.

Error: Illegal type conversion: «Сообщ1» to «Сообщ2»

Когда выполняете преобразование типов, вы должны понимать, что размеры переменной и типа назначения одинаковы.

Hint: Conversion between ordinals and pointers is not portable

Если вы преобразуете тип pointer в longint (или наоборот), то код не будет компилироваться на машинах, использующих 64-разрядную адресацию.

Warning: Conversion between ordinals and pointers is not portable

Если вы преобразуете тип pointer в порядковый тип с другим размером (или наоборот), то могут возникнуть проблемы. Это предупреждение помогает в поиске 32-битного специального кода, где cardinal/longint используются для преобразования указателей в порядковые типы. Решением проблемы является использование вместо этого типов ptrint/ptruint.

Error: Can’t determine which overloaded function to call

Вы вызываете перегруженную функцию с параметром, который не связан с каким-либо объявленным списком параметров, например, когда вы имеете объявленную функцию с параметрами word и longint, а затем вызываете её с параметром типа integer.

Error: Illegal counter variable

Переменная для цикла for должна быть порядкового типа. Переменные циклов не могут быть вещественными числами или строками.

Warning: Converting constant real value to double for C variable argument, add explicit typecast to prevent this.

В C значения вещественных констант по умолчанию имеют тип double. Из этих соображений, когда вы передаёте вещественную константу в функцию С в качестве параметра, компилятор FPC по умолчанию преобразует её в тип double. Если вы хотите контролировать этот процесс, добавьте для константы явное преобразование в нужный тип.

Error: Class or COM interface type expected, but got «Сообщение»

Некоторые операторы, такие как AS, применяются только для классов или COM-интерфейсов.

Error: Constant packed arrays are not yet supported

Вы не можете объявить битовый (упакованный) массив как типизированную константу.

Error: Incompatible type for arg no. Сообщ1: Got «Сообщ2» expected «(Bit)Packed Array»

Компилятор ожидает битовый (упакованный) массив как указанный параметр.

Error: Incompatible type for Сообщение no. Сообщ1: Got «Сообщ2» expected «»(not packed) Array»

Компилятор ожидает регулярный (то есть НЕ упакованный) массив как указанный параметр.

Error: Elements of packed arrays cannot be of a type which need to be initialised

Поддержка упакованных массивов, которым необходима инициализация (таких как ansistrings, или записей, содержащих ansistrings), пока не реализована.

Error: Constant packed records and objects are not yet supported

Вы не можете объявить битовый (упакованный) массив как типизированную константу в данное время.

Warning: Arithmetic «Сообщение» on untyped pointer is unportable to {$T+}, suggest typecast

Сложение/вычитание из нетипизированных указателей может работать по разному в {$T+}. Используёте преобразование типов для типизированных указателей.

Error: Can’t take address of a subroutine marked as local

Нельзя получить адрес подпрограммы, помеченной как локальная.

Error: Can’t export subroutine marked as local from a unit

Подпрограмма, помеченная как локальная, не может быть экспортирована из модуля.

Error: Type is not automatable: «Сообщение»

Только byte, integer, longint, smallint, currency, single, double, ansistring, widestring, tdatetime, variant, olevariant, wordbool и все интерфейсы являются automatable.

Hint: Converting the operands to «Сообщение» before doing the add could prevent overflow errors.

Сложение двух типов может вызвать ошибку переполнения. Обычно вы конвертируете результат в больший тип. Вы должны предотвращать такие ошибки, преобразуя операнды в этот тип перед сложением.

Hint: Converting the operands to «Сообщение» before doing the subtract could prevent overflow errors.

Вычитание между двумя типами может вызвать ошибку переполнения. Обычно вы конвертируете результат в больший тип. Вы должны предотвращать такие ошибки, преобразуя операнды в этот тип перед вычитанием.

Hint: Converting the operands to «Сообщение» before doing the multiply could prevent overflow errors.

Умножение между двумя типами может вызвать ошибку переполнения. Обычно вы конвертируете результат в больший тип. Вы должны предотвращать такие ошибки, преобразуя операнды в этот тип перед умножением.

Warning: Converting pointers to signed integers may result in wrong comparison results and range errors, use an unsigned

Виртуальное адресное пространство на виртуальных машинах располагается от $00000000 до $ffffffff. Многие операционные системы позволяют выделять память с адресами выше $80000000. Например, как WINDOWS, так и LINUX, допускают использование указателей в диапазоне от $0000000 до $bfffffff. Если вы преобразуете типы со знаком, это может вызвать ошибки переполнения и проверки диапазона, но также $80000000 < $7fffffff. Это может вызвать случайную ошибку в коде, подобно этому: «if p>q».

Error: Interface type Сообщение has no valid GUID

Если применяется оператор as для интерфейса или класса, то интерфейс (то есть правый операнд оператора as) должен иметь правильный GUID.

Error: Invalid selector name

Селектор Objective-C не может быть пустым, он должен быть правильным идентификатором или одинарным двоеточием, а если он содержит менее одного двоеточия, он также должен быть завершён.

Error: Expected Objective-C method, but got Сообщение

Селектор может быть создан только для методов Objective-C, не для любых других процедур/функций/методов.

Error: Expected Objective-C method or constant method name

Селектор может быть создан только для методов Objective-C, при задании имени используются строковые константы или идентификатор метода Objective-C, который является видимым из текущей области видимости.

Error: No type info available for this type

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

Error: Ordinal or string expression expected

The expression must be an ordinal or string type.

Error: String expression expected

The expression must be a string type.

Warning: Converting 0 to NIL

Use NIL rather than 0 when initialising a pointer.

Error: Objective-C protocol type expected, but got ”arg1”

The compiler expected a protocol type name, but found something else.

Error: The type ”arg1” is not supported for interaction with the Objective-C runtime

Objective-C makes extensive use of run time type information (RTTI). This format is defined by the maintainers of the run time and can therefore not be adapted to all possible Object Pascal types. In particular, types that depend on reference counting by the compiler (such as ansistrings and certain kinds of interfaces) cannot be used as fields of Objective-C classes, cannot be directly passed to Objective-C methods, and cannot be encoded using objc_encode.

Error: Class or objcclass type expected, but got ”arg1”

It is only possible to create class reference types of class and objcclass

Error: Objcclass type expected

The compiler expected an objcclass type

Warning: Coerced univ parameter type in procedural variable may cause crash or memory corruption: arg1 to arg2

univ parameters are implicitly compatible with all types of the same size, also in procedural variable definitions. That means that the following code is legal, because single and longint have the same size:

{$mode macpas}

Type

  TIntProc = procedure (l: univ longint);

  procedure test(s: single);

    begin

      writeln(s);

    end;

  var

    p: TIntProc;

  begin

    p:=test;

    p(4);

  end.

This code may however crash on platforms that pass integers in registers and floating point values on the stack, because then the stack will be unbalanced. Note that this warning will not flagg all potentially dangerous situations. when test returns.

Error: Type parameters of specializations of generics cannot reference the currently specialized type

Recursive specializations of generics like Type MyType = specialize MyGeneric<MyType>; are not possible.

Error: Type parameters are not allowed on non-generic class/record/object procedure or function

Type parameters are only allowed for methods of generic classes, records or objects

Error: Generic declaration of ”arg1” differs from previous declaration

Generic declaration does not match the previous declaration

Error: Helper type expected

The compiler expected a class helper type.

Error: Record type expected

The compiler expected a record type.

Error: Derived class helper must extend a subclass of ”arg1” or the class itself

If a class helper inherits from another class helper the extended class must extend either the same class as the parent class helper or a subclass of it

Error: Derived record helper must extend ”arg1”

If a record helper inherits from another record helper it must extend the same record that the parent record helper extended.

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

Error
15 : File not found (Window.TPU)

(Ошибка 15 : Файл не найден)

Когда ошибка обнаружена, Turbo
Pascal (в интегрированной
среде) автоматически загружает исходный
файл и помещает курсор в позицию ошибки.
Компилятор командной строки выводит
на дисплей сообщение об ошибке и ее
номер, а также исходную строку и использует
знак вставки для указания места, где
произошла ошибка.

Тем не менее, заметим, что некоторые
ошибки обнаруживаются несколько позже
в исходном тексте. Например, несоответствие
типов в операторе присваивания не может
быть обнаружено до тех пор, пока все
выражение после «:=» не будет
вычислено. В таких случаях ищите ошибку
слева или выше от курсора.

Далее даны коды наиболее частых ошибок,
встречающиеся при написании и отладки
программ.

1.
Out of memory (
не
хватает
памяти).

Эта ошибка происходит, когда компилятору
не хватает памяти. Есть несколько
возможных решений этой проблемы:

  • если опция Compile/Destination
    имеет значение Memory,
    то измените ее значение на Disk
    в интегрированной среде.

  • если опция Options/Compiler/Link
    buffer в интегрированной
    среде имеет значение Memory
    , то измените ее значение на Disk.

Если ни один вариант не помогает, то эта
программа или модуль, возможно, просто
слишком большие для компиляции в
доступном объеме памяти. В этом случае
нужно разбить модуль на два или большее
количество меньших модулей.

2.
Identifier
expected
(
ожидается
идентификатор).

В этой точке предполагался идентификатор.
Возможно, Вы пытаетесь повторно объявить
зарезервированное слово.

3.
Unknown
identifier
(
неизвестный
идентификатор)

Этот идентификатор не объявлен или
невидим внутри текущей сферы действия.

4.
Duplicate
identifier
(
дублируемый
идентификатор)

Этот идентификатор уже был использован
в текущем блоке.

5.
Syntax
error
(
синтаксическая
ошибка)

В исходном тексте был найден неправильный
символ. Возможно, Вы забыли кавычки
вокруг строковой константы.

6.
Error
in
real
constant
(
ошибка
в константе вещественного типа)

7.
Error in integer constant (
ошибка
в
константе
целого
типа)

8. String
constant
exceeds
line
(
строковая
константа выходит за пределы строки)

Наиболее вероятно, что Вы забыли
закрывающую кавычку в строковой
константе.

10.
Unexpected end of file (
неожиданный
конец
файла)

Можно получить такое сообщение об ошибке
из-за следующих причин:

  • исходный файл заканчивается перед
    последним End
    главной операторной части. Наиболее
    вероятно, что количество операторов
    Begin
    и End
    несбалансированно.

  • включенный файл заканчивается в середине
    операторной части.

  • каждая операторная часть должна
    полностью содержаться в файле.

  • не закрыт комментарий.

11.
Line
too
long
(
строка
слишком длинная)

Максимальная длина строки равна 126
символам.

12.
Type
identifier
expected
(
ожидается
тип идентификатора)

Этот идентификатор не обозначает тип,
как это должно быть.

20.
Variable
identifier
expected
(
ожидается
идентификатор переменной)

Этот идентификатор не обозначает
переменную, как это должно быть.

21.
Error in type (
ошибка
в
типе)

Этот символ не может начинать определение
типа.

22.
Structure
too
large
(
структура
слишком большая)

Максимальный допустимый размер
структурного типа равен 65520 байтам.

25.
Invalid
string
length
(
неправильная
длина строки)

Объявленная максимальная длина строки
должна быть в диапазоне 1..255.

26.
Type
mismatch
(
несоответствие
типов)

Это может быть по следующим причинам:

  • несовместимые типы переменной и
    выражения в операторе присваивания

  • несовместимые типы фактического и
    формального параметра в вызове процедуры
    или функции

  • тип выражения, который несовместим с
    типом индекса в индексации массива

  • несовместимые типы операндов в выражении.

30.
Integer constant expected (
ожидается
целая
константа)

31.
Constant expected (
ожидается
константа)

32.
Integer or real constant expected (
ожидается
целая
или
вещественная
константа)

33.
Type
identifier
expected
(
ожидается
тип идентификатора)

Этот идентификатор не обозначает тип
указателя, как это должно быть.

35.
Label
identifier
expected
(
ожидается
идентификатор метки)

Этот идентификатор не обозначает метку,
как это должно быть.

36.
Begin
expected
(
ожидается
оператор Begin)

37.
End
expected
(
ожидается
оператор End)

38.
Integer
expression
expected
(
ожидается
целое выражение)

Предыдущее выражение должно быть целого
типа.

39.
Ordinal
expression
expected
(
ожидается
выражение порядкового типа)

Предыдущее выражение должно быть
порядкового типа.

40.
Boolean
expression
expected
(
ожидается
выражение булевского типа)

41.
Operand
types
do
not
match
operator
(
типы
операндов не соответствуют оператору)

Оператор не может быть применен к
операндам этого типа, например ‘A’div’2’.

42.
Error in expression (
ошибка
в
выражении)

Этот символ не может участвовать в
выражении указанным способом. Возможно,
Вы забыли написать оператор между двумя
операндами.

43. Illegal
assignment(неправильное
присваивание)

  • Файлы и нетипированные переменные не
    могут быть присваиваемыми значениями.

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

50.
Do
expected
(
ожидается
ключевое слово Do)

54.
OF
expected
(
ожидается
ключевое слово Of)

55.
INTERFACE expected (
ожидается
ключевое
слово
interface)

57.
THEN
expected
(
ожидается
ключевое слово Then)

58.
TO or DOWNTO expected (
ожидается
ключевое
слово
To или
DownTo)

61.
Invalid
typecast
(
неправильное
приведение типов)

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

  • Попытка приведения типов в выражении,
    где допустима только ссылка на переменную.

62.
Division
by
zero
(
деление
на ноль)

Попытка деления на ноль.

65. Pointer
variable
expected
(
ожидается
переменная типа указатель)

Предыдущая переменная должна иметь тип
указатель.

66. String
variable
expected
(
ожидается
строковая переменная)

Предыдущая переменная должна быть
строкового типа.

67. String
expression
expected
(
ожидается
выражение строкового типа)

Предыдущее выражение должно быть
строкового типа.

79.
Integer or real expression expected (
ожидается
выражение
типа
Integer или
Real).

80. Label
not
within
current
block
(
метка
находится вне текущего блока).

Оператор Goto
не может ссылаться на метку, находящуюся
вне текущего блока.

81. Label
already
defined
(
метка
уже определена)

Эта метка уже помечает некоторый
оператор.

82.
Undefined
label
in
preceding
statement
part
(
неопределенная
метка в предыдущей операторной части)

Эта метка была объявлена и на нее есть
ссылка в предыдущей операторной части,
но эта метка нигде не определена.

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
(
ожидается
переменная целого типа)

Предыдущая переменная должна быть
целого типа.

102.
String constant expected (
ожидается
константа
типа
String)

103.
Integer or real variable expected (
ожидается
переменная
типа
Integer или
Real)

Предыдущая переменная должна быть типа
Integer
или Real.

104. Ordinal
variable
expected
(
ожидается
переменная порядкового типа
)

Предыдущая переменная должна быть
порядкового типа.

106.
Character
expression
expected
(
ожидается
выражение символьного типа)

Предыдущее выражение должно быть типа
Сhar.

112. Case
constant
out
of
range
(
константа
оператора Case
выходит за допустимый диапазон)

Для операторов Case
целого типа константы должны быть внутри
диапазона -32768…32767.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

ЧАСТЬ
5. ПРИЛОЖЕНИЯ  
ПРИЛОЖЕНИЕ
А. 

СООБЩЕНИЯ
ОБ ОШИБКАХ


 Предыдущая
страница     |     Следующая
страница


 



Сообщения об ошибках компиляции.

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

         Error 15 : File not found (Window.TPU)

         (Ошибка 15 : Файл не найден)

     Когда ошибка  
обнаружена,  Turbo  Pascal  (в  интегрированной
среде) автоматически загружает исходный файл и  помещает 
курсор  в позицию  ошибки.  Компилятор  командной 
строки  выводит на дисплей сообщение  об  ошибке 
и  ее  номер,  а  также  исходную  строку 
и использует  знак  вставки  (^)  для  указания
места,  где произошла ошибка.

     Тем не  менее 
заметим,  что  некоторые  ошибки обнаруживаются несколько
позже в исходном тексте. Например, несоответствие типов в операторе 
присваивания  не может быть обнаружено до тех пор,  пока все
выражение после «:=» не будет вычислено.  В таких случаях
ищите ошибку слева или выше от курсора.

      1. Out of memory
(не хватает памяти)

      Эта ошибка 
происходит,  когда  компилятору не хватает памяти. Есть несколько
возможных решений этой проблемы:

     — если  опция 
Compile/Destination  имеет значение Memory,  то измените ее
значение на Disk в интегрированной среде.

     — если  опция 
Options/Compiler /Link buffer в интегрированной среде имеет значение
Memory ,  то измените  ее  значение  на  Disk.
В компиляторе  командной  строки  для  редактирования
на диск нужно использовать опцию /L.

     — если  используются 
любые  утилиты,  находящиеся  в  памяти, например
SideKick и SuperKey, то их нужно удалить из памяти.

     — если  используется 
Turbo.EXE,  то постарайтесь использовать вместо Turbo.EXE TPC.EXE,
эта программа использует меньше памяти.

     Если ни один вариант
не помогает, то эта программа или модуль, возможно,  просто слишком
большие для компиляции в доступном объеме памяти.  В  этом 
случае  нужно  разбить  модуль на два или большее количество
меньших модулей.

     2. Identifier expected
(ожидается идентификатор)

     В этой  точке 
предполагался   идентификатор.   Возможно,   Вы пытаетесь повторно объявить зарезервированное слово.

     3. Unknown identifier
(неизвестный идентификатор)

     Этот идентификатор 
не  объявлен  или  невидим  внутри текущей сферы
действия.

      4. Duplicate identifier
(дублируемый идентификатор)

      Этот идентификатор
уже был использован в текущем блоке.  

     5. Syntax error (синтаксическая
ошибка)

      В исходном тексте
был найден неправильный символ. Возможно, Вы забыли кавычки вокруг строковой
константы.

     6. Error  in 
real  constant (ошибка в константе вещественного типа)

      Синтаксис констант
вещественного  типа  определен  в  главе  1
«Лексемы и константы».

      7. Error  in integer constant (ошибка в константе целого типа)

      Синтаксис констант 
целого типа определен в главе 1 «Лексемы и константы». 
Заметим,  что за целыми  числами  вещественного 
типа, лежащими   за  пределами  максимального 
целого  диапазона,  должна следовать десятичная точка и ноль;
например :

            12345678912.0

     8. String constant exceeds
line (строковая  константа  выходит за пределы строки)

      Наиболее вероятно,  
что   Вы  забыли  закрывающую  кавычку  в строковой константе.

     9. Too many nested files
(слишком много вложенных файлов)  

     Компилятор допускает
не более 15  вложенных  файлов.  Наиболее вероятно, что
в программе более 14 вложенных файлов.

     10. Unexpected end of
file (неожиданный конец файла)

     Можно получить 
такое  сообщение  об  ошибке  из-за  следующих
причин:

     — исходный  файл 
заканчивается  перед  последним  end главной операторной
части.  Наиболее вероятно,  что  количество  операторов
begin и end несбалансировано.

     — включенный файл заканчивается
в середине  операторной части. Каждая  операторная  часть 
должна  полностью  содержаться  в одном файле.

     — не закрыт комментарий.

      11. Line too long
(строка слишком длинная)

      Максимальная длина
строки равна 126 символам.

      12. Type identifier
expected (ожидается тип идентификатора)

      Этот идентификатор
не обозначает тип, как это должно быть.

      13. Too many open
files (слишком много открытых файлов)

      Если произошла 
эта  ошибка,  то  или  в  файле CONFIG.SYS
нет записи FILES = xx,  или эта  запись  задает 
слишком  мало  файлов. Увеличьте это значение до некоторого
подходящего значения, например до 20.

      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
out of range (базовый тип множества выходит за допустимый диапазон)

      Базовый тип множества 
должен  быть  поддиапазоном  ,  который находится
внутри диапазона 0..255,  или перечислимым типом, который имеет
не более 256 возможных значений.

     24. File components may
not be files or  objects (компонентами файла не могут быть файлы
или объекты)

      В качестве файловых
компонент не могут быть файлы или объекты, а так же ни один из структурных
типов, которые включают тип объекта или файла.

      25. Invalid string
length (неправильная длина строки)

      Объявленная максимальная  длина строки должна быть в диапазоне 1..255.

      26. Type mismatch
(несоответствие типов)

      Это может быть
по следующим причинам:

      — несовместимые 
типы  переменной  и  выражения  в   операторе
присваивания

     — несовместимые типы
фактического и  формального  параметра  в вызове процедуры
или функции

     — тип  выражения, 
который  несовместим  с  типом  индекса   в индексации массива

     — несовместимые типы
операндов в выражении.

      27. Invalid subrange
base  type  (неправильный  поддиапазонный базовый тип)

      Все порядковые
типы являются допустимыми базовыми типами.

      28. Lower 
bound  greater  than  upper  bound  (нижняя
граница больше верхней границы)

      В объявлении 
поддиапазонного  типа  нижняя  граница   указана
больше верхней границы.

      29. Orginal type
expected (ожидается порядковый тип)

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

     30. Integer constant
expected (ожидается целая константа)

     31. Constant expected
(ожидается константа)

     32. Integer or real constant 
expected  (ожидается  целая  или вещественная константа)

      33. Type identifier
expected (ожидается тип идентификатора)

      Этот идентификатор
не обозначает тип указателя, как это должно быть.

      34. Invalid function
result type (неправильный  тип результата функции)

      Правильными типами 
результатов  функций  являются все простые типы, строковые
типы и типы указателей.

      35. Label  identifier expected (ожидается идентификатор метки)

      Этот идентификатор
не обозначает метку, как это должно быть.

      36. Begin expected
(ожидается оператор begin)

      37. End expected
(ожидается оператор end)

      38. Integer expession
expected (ожидается целое выражение)

      Предыдущее выражение
должно быть целого типа.

      39. Ordinal  
expession    expected    (ожидается    выражение порядкового типа)

      Предыдущее выражение
должно быть порядкового типа.

      40. Boolean   
expression    expected   (ожидается   выражение булевского типа)

      41. Operand types
do not match  operator  (типы  операндов  не соответствуют
оператору)

      Оператор не  
может   быть   применен   к  
операндам    этого типа, например ‘A’ div ‘2’.

      42. Error in expression
(ошибка в выражении)

      Этот символ 
не  может  участвовать  в   выражении 
 указанным способом.   Возможно, Вы  забыли  
написать  оператор  между  двумя операндами.

     43. Illegal assignment(неправильное
присваивание)

     — Файлы   и  
нетипированные   переменные   не   могут    быть присваиваемыми значениями.

     — Идентификатору функции 
можно  присваивать  значения  только внутри операторной
части функции.

      44. Field identifier
expected (ожидается идентификатор поля)

      Этот идентификатор  не обозначает поле в предыдущей переменной типа запись.

      45. Object file
too large (объектный файл слишком большой)

      Turbo Pascal не
может подредактировать  .OBJ  файлы,  размером больше
64К.

      46. Undefined
external (неопределенный внешний элемент)

      Внешняя процедура
или функция не имеют соответствующего PUBLIC определения в объектном
файле.  Убедитесь,  что все объектные файлы заданы  
в   директивах   {$L  имя  файла} 
и  проверьте  написание идентификатора процедуры или функции
в .ASM файле.

     47. Invalid object file
record (неправильная запись объектного файла)

      .OBJ файл 
содержит неправильную объектную запись;  убедитесь, что файл фактически
является .OBJ файлом.

      48. Code Segment
too large (сегмент кода слишком большой)

      Максимальный размер
кода  программы  или  модуля  равен  65520
байт. Если  компилируется  программа,  то нужно перенести
несколько процедур или функций в модуль.  Если компилируется модуль, 
то  его нужно разбить на два или больше модулей.

      49. Data segment
too large (сегмент данных слишком большой)

      Максимальный размер 
сегмента  данных  программы  равен  65520 байт,
включая  данные,  объявленные  используемыми  модулями. 
Если необходимо больше  глобальных  данных,  то нужно
объявить структуры большого размера  как  указатели 
и  разместить  их  динамически  с использованием
процедуры New.

     50. Do expеcted (ожидается
ключевое слово)

      51. Invalid  
PUBLIC   definition   (неправильное  определение
PUBLIC)

      — Идентификатор
был сделан общедоступным с  помощью  директивы PUBLIC в  
языке   ассемблер,   но  он  не 
соответствует  external объявлению в программе или в модуле на
Паскале.

     — Две  или более
директивы PUBLIC в ассемблере определяют один и тот же идентификатор.

     — .OBJ файл определяет
PUBLIC символы , которые не находятся в сегменте CODE.

      52. Invalid EXTRN
definition (неправильное определение  EXTRN)

      — На идентификатор
была ссылка с  помощью  директивы  EXTRN  в ассемблере, 
но  он  не  был  объявлен ни в программе или модуле
на Паскале, ни в интерфейсной части используемых модулей.

     — Этот   
идентификатор   обозначает   absolute   (абсолютную) переменную.

     — Этот  идентификатор
обозначает inline процедуру или функцию.

      53. Too many EXTRN
definion (слишком много объявлений EXTRN)  

     Turbo Pascal  не
может обрабатывать .OBJ файлы с более чем 256 объявлениями EXTRN.

     54. OF expected (ожидается
ключевое слово OF)

     55. INTERFACE expected
(ожидается ключевое слово interface)

     56. Invalid relocatable
reference  (неправильная  переместимая ссылка)

      — .OBJ файл содержит
данные и переместимые ссылки в сегментах, отличных   
от    CODE.    Например,   
Вы    пытаетесь    объявить инициализированные
переменные в сегменте DATA.

     — .OBJ  файл 
содержит  ссылки размером в байт на переместимые символы . Эта
ошибка происходит, если используются операторы HIGH и LOW с перемеcтимыми
символами или, если есть ссылка на переместимые символы в директивах
DB.

     — Операнд  ссылается 
на  переместимый символ,  который не был определен ни в сегменте
CODE, ни в сегменте DATA.

     — Операнд  
ссылается   на  процедуру  или  функцию 
EXTRN  со смещением, например, CALL SortProc +8.

     57. THEN expected (ожидается
ключевое слово then)

     58. TO  or 
DOWNTO  expected  (ожидается ключевое слово to или downto)

      59. Undefined
forward (не определен элемент, указанный ранее)

      — Эта  процедура 
или  функция  была  объявлена в интерфейсной части модуля, 
но ее  определение  не  встречается  нигде 
в  части реализации.

     — Эта процедура или функция
была объявлена с  ключевым  словом forward, но ее определение
нигде не обнаружено.

      60. Too many procedure
(слишком много процедур)

      Turbo Pascal 
не  допускает  более  512 процедур или функций в модуле.
Если  компилируется   программа,   то  
нужно   переместить несколько процедур или функций в модуль.
Если компилируется модуль, то его нужно разбить на два или более модулей.

      61. Invalid typecast
(неправильное приведение типов)

      — Размеры ссылки
на переменную и тип назначения отличаются при приведении типа переменной.

     — Попытка приведения
типов в выражении,  где допустима  только ссылка на переменную.

      62. Division by
zero (деление на ноль)

      Попытка деления
на ноль.

      63. Invalid file
type (неправильный тип файла)

      Этот тип  файла не поддерживается процедурой обработки файлов, например, readln
c типированным файлом или Seek c текстовым файлом.

     64. Cannot Read or Write
variables of type (нельзя  читать или писать переменные этого типа)

      — Read  
или   Readln   могут   вводить  значения 
типа  Char, Integer, Real, и String.

     — Write или   
Writeln    могут    выводить   
значения    типа Char, Integer, Real, String и Boolean.

      65. Pointer 
variable  expected  (ожидается  переменная   типа указатель)

      Предыдущая переменная
должна иметь тип указатель.

      66. String variable
expected (ожидается строковая переменая)

      Предыдущая переменная
должна быть строкового типа.

      67. String  expession expected (ожидается выражение строкового типа)

      Предыдущее выражение
должно быть строкового типа.

      68. Circular unit
reference (циклическая ссылка на модуль)

      Не допускается,
чтобы два модуля использовали друг друга:

       unit U1;     unit U2;

      uses U2;     uses U1;

       …           …

      В этом примере
при выполнении MAKE  для  любого  модуля  будет
генерироваться ошибка 68.

     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 файл 
почему-то  неправильный;  убедитесь,что  этот  файл
фактически является .TPU файлом.

     73. Implementation   
expected   (ожидается   ключевое   слово
implementation)

      74. Constant and
case types do  not  match  (константа  и  тип
переключателя в операторе case не соответствуют друг другу)

      Тип константы  
оператора   case   несовместим   с  выражением переключателя в предложении case.

     75. Record  
variable   expected  (ожидается  переменная  типа record)

      Предыдущая переменная
должна иметь тип record.

      76. Constant 
out  of  range  (константа выходит за допустимый диапазон)

      — Попытка индексировать
массив с помощью  константы, выходящей за допустимый диапазон.

     — Попытка  присвоить 
переменной   константу,   выходящую   за допустимый диапазон.

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

      77. File variable
expected (ожидается переменная типа file)

      Предыдущая переменная
должна иметь тип file.

      78. Pointer 
expression  expected  (ожидается  выражение  типа
pointer).

      79. Integer or
real expression expected  (ожидается  выражение типа integer
или real).

      80. Label 
not  within  current  block  (метка  находится  вне текущего блока).

      Оператор goto
не может ссылаться  на  метку,  находящуюся  вне
текущего блока.

      81. Label already
defined (метка уже определена)

      Эта метка уже
помечает некоторый оператор.

      82. Undefined   
label    in    preceding   
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 (неправильное упорядочивание полей)

      Поля констант
типа  record  должны  быть  записаны  в  порядке объявления.

     102. String  
constant   expected  (ожидается  константа  типа string)

      103. Integer or
real variable expected  (ожидается  переменная типа Integer
или Real)

      Предыдущая переменная
должна быть типа Integer или Real.

     104. Ordinal   
variable    expected   (ожидается   переменная порядкового типа )

      Предыдущая переменная
должна быть порядкового типа .

      105. INLINE error
(ошибка в INLINE)

      Оператор < не допустим в сочетании с перемещаемыми ссылками на переменные, такие
ссылки всегда имеют размер, равный слову.

     106. Character  
expession   expected   (ожидается   выражение
символьного типа)

      Предыдущее выражение
должно быть типа Сhar.

      107. Too many
relocation  items  (слишком  много  перемещаемых
элементов)

      Размер перемещаемой 
части таблицы в .EXE файле превышает 64К, что является верхним пределом 
в  Turbo  Pascal.  Если  эта  ошибка возникает,
то  это  означает,  что данная программа слишком большая
для обработки редактором связей Turbo Pascal.  Вероятно, 
она будет слишком  большой  для  выполнения  в 
DOS  .  В  этом  случае нужно разделить программу
на «главную» часть,  которая выполняет две  или
более «подпрограмм», используя процедуру EXEC в модуле Dos.  

     112. Case  constant 
out  of  range  (константа оператора case выходит за
допустимый диапазон)

      Для операторов
case целого типа константы должны  быть  внутри диапазона
-32768…32767.

     113. Error in statement
(ошибка в операторе)

     С этого символа не может
начинаться оператор.

     114. Cannot  call 
an  interrupt  procedure  (нельзя  вызывать процедуру
прерывания)

      116. Must be in
8087 mode to compile this (для компиляции этой конструкции должен быть
режим 8087)

      Эта конструкция  
может  компилироваться  только  в  состоянии {$N+}.
Операция над 8087 типами Single,  Double,  Extended 
и  Comp недопустимы в состоянии {$N-}.

      117. Target address
not found (искомый адрес не найден)  

     Команда Compile/Search 
Find Error в интегрированной среде или опция /F в версии командной строки
не  может  определить  оператор, который соответствует
данному адресу.

      118. Include files
are not  allowed  here  (здесь  недопустимы включаемые
файлы)

      Каждая операторная
часть должна полностью содержаться в данном файле.

     120. NIL expected (ожидается
NIL)

     121. Invalid Qualifier
(неправильный квалификатор)

     — Попытка  индексировать 
переменную,  которая  отсутствует  в массиве.

     — Попытка  задать 
поля  в  переменной,  которая  не  является
записью.

     — Попытка  
получить   значение,    на   
которое    указывает переменная, не являющаяся указателем.

      122. Invalid  
variable   reference  (неправильная  ссылка  на переменную)

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

      123. Too many
symbols (слишком много символов)

      Программа или  
модуль  объявляет  более  64К  символов.  Если
программа или модуль компилируется с опцией {$D+}, то попробуйте ее
выключить —   заметим,   однако,   что  
это  будет  препятствовать нахождению  ошибок  выполнения  
в   этом   модуле.   В   противном
случае, можно   попробовать   переместить 
несколько  объявлений  в отдельный модуль.

      124. Statement 
part  too  large  (операторная  часть  слишком
большая)

      Turbo Pascal 
ограничивает размер операторной части около 24К. Если встречается эта
ошибка,  то  переместите  разделы  операторной части
в  одну  или более процедур.  В любом случае,  если
программа имеет операторную часть такого размера,  то имеет 
смысл  прояснить структуру этой программы.

      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 или в директиве /D,  неправильные. Turbo Pascal ожидает,
что  0  или  более иденитификаторов разделяются пробелами,
запятыми или точками с запятой.

      131. Header does
not match previous definition  (заголовок  не соответствует
предыдущему определению)

      — Заголовок 
процедуры  или  функции,  заданный в интерфейсной части
или в объявлении forward, не соответствует данному заголовку.

      132. Critical
dick error (критическая ошибка диска)

      Критическая ошибка   
произошла    во     время     компиляции (например, ошибка неготовности носителя)

      133. Cannot 
evaluate  this  expression  (нельзя вычислить это выражение)

      Попытка использовать
неподдерживаемое Turbo Pascal  свойство в константном выражении 
или  в  отладочном выражении.  Например,  Вы пытаетесь
использовать функцию Sin в объявлении константы,  или  Вы
пытаетесь вызвать функцию, определенную пользователем, в отладочном
выражении.  Описание допустимого  синтаксиса  конкретных 
выражений приведено  в  главе  1 «Лексемы и константы». 
Описание допустимого синтаксиса отладочных выражений приведено 
в  главе  5  Руководства пользователя «Отладка программ
на Turbo Pascal».

     134. Expession 
incorrectly  terminated (выражение завершается неправильно)

      Turbo Pascal ожидает
или оператор,  или конец выражения в этой точке, но ничего не находит.

      135. Invalid  
format   specifier  (неправильный  спецификатор
формата )

      Используется неправильный
спецификатор  формата  или  числовой аргумент  спецификатора
 формата  выходит  за  допустимый диапазон. Список 
правильных  спецификаторов  формата  приведен  в 
главе   5 Руководства пользователя «Отладка программ
на Turbo Pascal».

     136. Invalid  
indirect   reference   (неправильная  косвенная
ссылка)

      Оператор пытается 
сделать  неправильную   косвенную   ссылку.
Например,  используется  absolute  переменная, 
у  которой  базовая переменная неизвестна в  текущем 
модуле  или  используется  inline программа, которая 
ссылается на переменную,  неизвестную в текущем модуле.

     137. Structured variables
are not  allowed  here  (структурные переменные недопустимы
здесь)

      Попытка выполнить  не поддерживаемую Turbo Pascal операцию над структурной переменной.
Например, попытка умножить две записи.

     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   (ожидается
переменная типа procedure или function)

      В этом  контексте 
оператор  адреса  (@)  может использоваться только с
переменной процедуры или функции.

      143. Invalid procedure 
or  function  reference  (неправильная ссылка на процедуру
или функцию)

      — Если  процедура
или функция должны быть присвоены переменной типа procedure,  то
их нужно компилировать в состоянии {$F+}  и  их нельзя объявлять
с ключевыми словами inline или interrupt.

     — Вы пытаетесь вызвать
процедуру в выражении.

      144. Cannot overlay
this  unit  (нельзя  сделать  этот  модуль
оверлейным)

      Попытка сделать   
оверлейным    модуль,    который  
не   был откомпилирован в состоянии {$O+}.

     147 Object type expected
(Ожидается объектный тип.)

          Идентификатор не является объектным типом.

      148 Local object
types are not allowed.  (Локальный  объектный тип недопустим.)

      Объектный тип 
может  быть  определен  только  в самой внешней
сфере действия программы или модуля.  Определение  объектного  типа внутри процедур или функций недопустимо.

      149 VIRTUAL expected.
(VIRTUAL ожидается.)

      Пропущено ключевое
слово VIRTUAL.

      150 Method   
identifier   expected.   (Идентификатор   метода ожидается.)

      Идентификатор
не является методом.

      151 Virtual 
constructors  are   not   allowed.   (Виртуальные констракторы неразрешены.)

      Констрактор-метод
должен быть статическим.

      152 Constructor    
identifier     expected.    (Идентификатор
констрактора ожидается.)

      Идентификатор
не является констрактором.

      153 Destructor
identifier expected. (Идентификатор дестрактора ожидается.)

      Идентификатор
не является дестрактором.

      154 Fail 
only  allowed  withing constructors.  (Fail допустим
только внутри констракторов.)

      Стандартная процедура 
Fail  может  быть  использована  только    внутри констракторов.

      155. Invalid 
combination  of  opcode  and  operands (Неверная
комбинация кода операции и операндов)

      Код операции 
не   допускает   такой   комбинации   операндов. Возможные причины:

     — Слишком  много 
или  слишком  мало  операндов для этого кода операции;
например

     INC AX, BX или MOV AX

     — Правильное  число 
операндов,  но  их  тип  или  порядок  не соответствуют коду операции; например

     DEC 1,  MOV AX,CL  или MOV 1,AX

     156. Memory reference
expected (Ожидается ссылка на память)

     Этот операнд  не 
ссылка  на память,  которая ожидается здесь. Вероятно, Вы
забыли  поставить  []  вокруг  регистрового  операнда. Например

      MOV AX, BX+SI
вместо MOV AX, [BX+SI]

      157. Cannot  
add  or  subtract  relocatable  symbols  (Нельзя
складывать или вычитать переместимые символы)

      Над переместимыми
символами можно выполнять только  сложение и вычитание констант. 
Переменные,  процедуры,  функции и метки — это переместимые
символы.  Считая,  что Var — это переменная, а Const — это
константа, инструкции MOV AX, Const+Const и MOV AX, Var+Const — верны,
а MOV AX, Var+Var — нет.

      158. Invalid  
register   combination   (Неверная   комбинация
регистров)

      Правильные индексные
регистровые комбинации: [BX], [BP], [SI], [DI], [BX+SI],  [BX+DI],  
[BP+SI],   [BP+DI].   Другие   индексные
регистровые комбинации  (такие,  как [AX],  [BP+BX],  [SI+DX]) — не разрешены.

      Примечание: Локальные
переменные  (переменные,  объявленные  в процедурах и
функциях) всегда распределяются в стеке и доступ к ним производится
через регистр BP.  Ассемблер  автоматически  добавляет
[BP] в ссылках на такие переменные.  Так, что даже хотя конструкция
такая, как Local[BX] (где Local — локальная  переменная) появляется
правильной, это  не  так,  поскольку  результирующий
операнд будет: Local[BP+BX].

      159. 286/287 Instructions
are not enabled  (Инструкции 286/287 не разрешены.)

      Используйте директиву
компилятора {$G+},  чтобы разрешить коды операций 286/287, 
но помните,  что  результирующий  код  не  может выполняться на компьютерах с 8086 или 8088.

     160. Invalid symbol reference
(Неверная ссылка на символ)

      К этому 
символу  нельзя  обращаться  в ассемблерном операнде.
Возможные причины:

     — Вы   пытаетесь  
обратиться   в   ассемблерном   операнде  к стандартной процедуре, стандартной функции или специальным массивам
Mem, MemW, MemL, Pоrt, PortW.

     — Вы пытаетесь обратиться
в ассемблерном операнде  к константе типа строка, плававающая точка
или множество.

     — Вы пытаетесь обратиться
к специальному символу  @Result  вне функции.

     — Вы пытаетесь обратиться
в  ассемблерном  операнде  к  inline процедуре или
функции.

     — Вы пытаетесь сгенерировать
короткую JMP  инструкцию, которая переходит на что-либо отличное
от метки.

     161. Code generation
error (Ошибка генерации кода)

     Предыдущая операторная  
часть  содержит  инструкцию:  LOOPNE, LOOPE, LOOP или
JCXZ, которая не может достичь метки назначения.

     162. ASM expected (Ожидается
ASM)

[начало] [оглавление]
 

Ошибки времени выполнения.

      Некоторые ошибки
во  время  выполнения  программы  приводят 
к тому, что  программа  выводит  на  дисплей 
сообщение  об  ошибке и завершается:

     Run-time error 
nnn  at  xxxх:yyyy  (ошибка  выполнения nnn по адресу
xxxх:yyyy,    где    nnn-номер   
ошибки    выполнения,    а xxxx:yyyy —
адрес ошибки выполнения (сегмент и смещение))

     Ошибки выполнения разделены
на четыре категории:

          ошибки операционной системы DOS:1-99

          ошибки ввода/вывода:100-149

          критические ошибки :150-199

        
 фатальные ошибки:200-255.

[начало] [оглавление]
 

Ошибки операционной системы DOS.

      1. Invalid function
number (Неверный номер функции)

      Вы вызываете несуществующую
функцию DOS.

      2. File not found
(файл не найден)

      Сообщается процедурами
Reset,  Append,  Rename или Erase, если имя назначенное файловой
переменной не задает существующий файл.

      3. Path not fond
(путь не найден)

     — Сообщается  процедурами
Reset,  Rewrite,  Append,  Rename или Erase,  если
имя, назначенное файловой переменной,  неправильное или задает
несуществующий подсправочник.

      — Сообщается 
процедурами  Chdir,  Mkdir или Rmdir,  если путь доступа
неправильный или задает несуществующий подсправочник.

      4. Too many open
files (слишком много открытых файлов)

      Сообщается процедурами 
Reset,  Rewrite   или   Append,  
если программа  имеет  слишком  много  открытых 
файлов.  DOS никогда не разрешает более 15 открытых файлов на процесс.
Если встречается эта ошибка, когда открытых файлов меньше 15, 
то это может указывать на то,  что файл CONFIG.SYS не содержит
запись FILES =XX или,  что эта запись задает  слишком 
мало  файлов.  Увеличьте  это количество до некоторого
подходящего значения, например, до 20.  

     5. File access denied
(запрещен доступ к файлу)

      — Сообщается 
процедурами  Reset  или  Append,  если  FileMode
разрешает запись,  а имя,  назначенное файловой переменной,  задает справочник или файл, предназначенный только для считывания.

     — Сообщается процедурой
Rewrite,  если справочник заполнен или если имя,  присвоенное
файловой переменной,  задает справочник  или существующий
файл, предназначенный только для считывания.

     — Сообщается процедурой
Rename, если имя, присвоенное файловой переменной,   задает  
справочник   или   если   новое 
имя  задает существующий файл.

     — Сообщается процедурой
Erase,  если имя, присвоенное файловой переменной,  задает
справочник или файл, предназначенный только для считывания.

     — Сообщается  процедурой 
MkDir,  если  файл  с  таким  именем существует 
в  «родительском  «справочнике,  или 
если путь доступа задает устройство, или если нет места в «родительском» справочнике.

     — Сообщается процедурой
RmDir,  если справочник непустой; если путь доступа не задает справочник, 
или если  путь  доступа  задает корневой справочник.

     — Сообщается процедурой
Read или BlockRead  для  типированного или нетипированного
файла, если этот файл не открыт для чтения.

     — Сообщается процедурой
Write или BlockWrite для типированного или нетипированного файла, если
этот файл не открыт для записи.

      6. Invalid file
handle (неправильный обработчик файла)  

     Эта ошибка  сообщается, 
если  неправильный  обработчик  файла передается  
вызову   системы   DOS.   Это  
никогда   не    должно происходить; если 
это  случается,  то  это  указывает,что файловая
переменная каким-то образом запорчена.

      12. Invalid file 
access  code  (неправильный  код  доступа  к файлу)

      Сообщается процедурами  Reset или Append для типированного или нетипированного файла,если значение
FileMode неправильное.

     15. Invalid drive number
(неправильный номер устройства)

     Сообщается процедурой 
GetDir  или   ChangeDir,   если   номер устройства неправильный.

      16. Cannot 
remove  current  directory (нельзя удалять текущий справочник)

      17. Cannot rename
across drives (нельзя переименовывать файлы, находящиеся на различных
устройствах)

     Сообщается процедурой 
Rename,  если  оба  имени  находятся на различных
устройствах.

[начало] [оглавление]
 

Ошибки ввода/вывода.

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

     100. Disk read error
(ошибка чтения с диска)

     Сообщается процедурой  
Read  для  типированного  файла,  если делается
попытка чтения после конца файла.

      101. Disk write
error (ошибка записи на диск)

      Сообщается процедурами
Close,  Write, Writeln, Flush или Page, если диск становится полным.

      102. File not
assigned (файл не назначен)

      Сообщается процедурами 
Reset,  Rewrite,  Append,  Rename  или Erase, 
если файловой переменной не было присвоено  имя  с  помощью
вызова Assign.

      103. File not
open (файл не открыт)

      Сообщается процедурами 
Close,  Read,  Write,  Eof,  FileSize, Flush, BlockRead
или BlockWrite, если файл не открыт.

      104. File not
open for input (файл не открыт для ввода)

      Сообщается процедурами 
Read,  Readln,  Eof,  Eoln,   SeekEof, SeekEoln
для текстовых файлов, если файл не открыт для ввода.

      105. File not
open for output (файл не открыт для вывода)

      Сообщается процедурами 
Write  и Writeln для текстовых файлов, если файл не открыт для
вывода.

      106. Invalid numeric
format (неправильный числовой формат)

      Сообщается процедурами
Read и Readln, если  числовое значение, прочитанное  
из  текстового  файла  не  соответствует  правильному
числовому формату.

[начало] [оглавление]

Критические ошибки.

      150. Disk is write-protected
(защита диска от записи)

      151. Unknown unit
(неизвестное устройство)

      152. Drive not
ready (устройство не готово)

      153. Unknown command
(неизвестная команда)

      154. CRC 
error  in  data  (ошибка  циклического  контроля  по избыточности в данных)

      155. Bad drive
reguest 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 (отказ аппаратного обеспечения)

      Более подробная 
информация  о критических ошибках приведена в Руководстве программиста
для DOS.

[начало] [оглавление]
 

Фатальные ошибки.

      Эти ошибки всегда
сразу же завершают программу.

      200. Division
by zero (деление на ноль)

      201. Ошибка  
выхода   за   допустимый  диапазон.  Эта  ошибка сообщается операторами, откомпилированными в состоянии {$R+},
когда возникает одна из следующих ситуаций:

     — Индексное  
выражение   квалификатора   массива  выходит  за допустимый диапазон.

     — Была   сделана  
попытка   присвоить   переменной  значение,
выходящее за допустимый диапазон.

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

      202. Stack overflow
error (ошибка переполнения стека)

      Эта ошибка сообщается 
при  входе  в  процедуру  или  функцию, откомпилированную
в  состоянии {$S+},  когда в стеке нет достаточно места для
размещения локальных  переменных  подпрограмм.  Увеличьте
размер стека с помощью директивы компилятора $M.

      Эта ошибка может
возникать так же из-за бесконечной рекурсии.

      203. Heap overflow
error (ошибка переполнения кучи)

      Эта ошибка 
сообщается  процедурами  New или GetMem ,  когда в куче
нет достаточно места для размещения блока  требуемого размера.
Более  подробное  описание  монитора  кучи 
приведено  в  главе  16 «Память».

      204. Invalid 
pointer  operation  (неправильная   операция   с указателем)

      Эта ошибка 
сообщается  процедурами Dispose или FreeMem,  если указатель
равен nil или указывает на позицию за пределами кучи или, если свободный
список не может быть расширен из-за того, что список свободных блоков
полон,  или HeapPtr находится  слишком  близко  от нижней границы списка свободных блоков.

      205. Floating
point overflow (переполнение с плавающей точкой)

      Операция с 
плавающей  точкой обрабатывает слишком большое для Turbo Pascal
или сопроцессора число.

      206. Floating
point underflow (потеря значности при операции с плавающей точкой)

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

      207. Invalid floating
point operation (неправильная операция с плавающей точкой)

      — Вещественное
значение,  передаваемое  Trunc  или  Round, 
не может  быть преобразовано в целое внутри диапазона для типа
LongInt (-2147483648 до 214783647)

     — Аргумент,  передаваемый
функции Sgrt, является отрицательным числом.

     — Аргумент,  
передаваемый   функции   Ln,   равен  
нулю  или отрицательный.

     — Произошло  
переполнение   стека  сопроцессора  8087. 
Более подробное описание корректного программирования  при 
использовании сопроцессора 8087 приведено в главе 14 «Использование
8087»

      208. Overley  
manager  not  installed  (монитор  оверлеев  не инсталирован)

      Программа вызывает 
оверлейную  процедуру  или   функцию,   но
монитор оверлеев не инсталирован.

     Наиболее вероятно, что
Вы не вызвали OvrInit или вызов OvrInit был  неудачным.  Заметим, 
что  если  код инициализации находится в любом  из 
оверлейных  модулей, то  нужно  создать   дополнителный
неоверлейный  модуль,  который вызывает OvrInit и использовать
этот модуль перед любым из оверлейных модулей.  Полное описание
монитора оверлеев приведено в главе 13 «Модуль Overlay» .

      209. Overlay file
read error (ошибка чтения оверлейного файла)

      Произошла ошибка  
чтения,   когда  монитор  оверлеев  пытался
прочитать оверлей из оверлейного файла.

      210. Object not
initialized. (Объект не инициализирован)

      Когда включена
проверка диапазона,  Вы  вызываете  виртуальный метод
объекта до инициализации объекта через вызов констрактора.

      211. Call to abstract
method. (Вызов абстрактного метода)

      Эта ошибка 
генерируется процедурой Abstract в модуле Objects; она указывает, 
что Ваша программа пытается  выполнить  абстрактный витруальный
метод.  Когда  объектный  тип  содержить один или
более абстрактных методов,  он называется  абстрактным 
объектным  типом. Будет ошибкой  создавать  экземпляры 
объектов  абстрактного типа — абстрактные типы  существуют 
только  для  того,  чтобы  Вы   могли
наследовать от них и перекрывать абстрактные методы.

      Например, метод  
Compare   типа  TSortedCollection  в  модуле
Objects абстрактный,  указывает   на   то,  
что   для   реализации отсортированного набора 
Вы  должны создать объектный тип,  который наследуется от
TSortedCollection и перекрывает метод Compare.

      212. Stream registration
error. (Ошибка регистрации потока)

      Эта ошибка 
генерируется  процедурой  RegisterType  в   модуле Objects, указывая, что возникла одна из ошибок:

      — Запись регистрации
потока не размещается в сегменте данных.

      — Поле ObjType
записи регистрации потока = 0.

      — Тип уже зарегистрирован.

      — Существует другой
тип с тем же значением ObjType.

      213. Collection
index out of range.  (Индекс набора выходит за пределы)

      Индекс, переданный
в метод из TCollection, выходит за пределы.

      214. Collection
overflow error. (Ошибка переполнения набора)

      Эта ошибка выдается
TCollection при попытке  добавить элемент, когда набор не может
быть расширен.

[начало]
[оглавление]    


Предыдущая
страница     |     Следующая
страница


1 Out of memory (Выход за границы памяти). 2 Identifier expected (Не указан идентификатор). 3 Unknown identifier (Неизвестный идентификатор). 4 Duplicate identifier (Двойной идентификатор). 5 Syntax error (Синтаксическая ошибка). 6 Error in real constant (Ошибка в вещественной константе). 7 Error in integer constant (Ошибка в целой константе). 8 String constant exceeds line (Строковая константа превышает допустимые размеры). 9 Too many nested files (Слишком много вложенных файлов). 10 Unexpected end of file (He найден конец файла). 11 Line too long (Слишком длинная строка) 12 Type identifier expected (Здесь нужен идентификатор типа). 13 Too many open files (Слишком много открытых файлов). 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 (Слишком большая структура). 23 Set base type of range (Базовый тип множества нарушает границы). 24 File components may not be files (Компонентами файла не могут быть файлы) . 25 Invalid string length (Неверная длина строки). 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 Type 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 (Типы операндов не соответствуют операции). 42 Error in expression (Ошибка в выражении). 43 Illegal assignment (Неверное присваивание). 44 Field identifier expected (Нужен идентификатор поля) . 45 Object file too large (Объектный файл слишком большой). 46 Undefined external (Неопределенная внешняя процедура). 47 Invalid object file record (Неправильная запись объектного файла). 48 Code segment too large (Сегмент кода слишком большой). 49 Data segment too large (Сегмент данных слишком велик). 50 DO expected (Нужен оператор DO). 51 Invalid PUBLIC definition (Неверное PUBLIC-определение). 52 Invalid EXTRN definition (Неправильное EXTRN-определение). 53 Too many EXTRN definition (Слишком много EXTRN-определений). 54 OF expected (Требуется OF). 55 INTERFACE expected (Требуется интерфейсная секция). 56 Invalid relocatable reference (Неправильная перемещаемая ссылка). 57 THEN expected (Требуется THEN). 58 TO or DOWNTO expected (Требуется TO или DOWNTO). 59 Undefined forward (Неопределенное опережающее описание). 60 Too many procedures (Слишком много процедур). 61 Invalid typecast (Неверное преобразование типа). 62 Division by zero (Деление на ноль). 63 Invalid file type (Неверный файловый тип). 64 Cannot Read or Write variables of this type (Нет возможности считать или записать переменные данного типа). 65 Pointer variable expected (Нужно использовать переменную-указатель). 66 String variable expected (Нужна строковая переменная). 67 String expression expected (Нужно выражение строкового типа). 68 Circular unit reference (Перекрестная ссылка модулей). 69 Unit name mismatch (Несоответствие имен программных модулей). 70 Unit version mismatch (Несоответствие версий модулей). 71 Duplicate unit name (Повторное имя программного модуля). 72 Unit file format error (Ошибка формата файла модуля). 73 IMPLEMENTATION expected (Отсутствует исполняемая часть модуля). 74 Constant and case types do not match (Типы констант и тип выражения опе- ратора CASE не соответствуют друг другу). 75 Record variable expected (Нужна переменная типа запись). 76 Constant out of range (Константа нарушает границы). 77 File variable expected (Нужна файловая переменная). 78 Pointer expression expected (Нужно выражение типа указатель). 79 Integer or real expression expected (Нужно выражение вещественного или целого типа). 80 Label not within current block (Метка не находится внутри текущего блока) 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 (Слишком много переменных). 97 Invalid FOR control variable (Неправильный параметр цикла оператора 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 (Слишком много перемещаемых элементов). 108 Overflow in arithmetic operator (Переполнение при выполнении арифметического оператора). 109 No enclosing FOR, WHILE or REPEAT statement (Нет операторов, заканчивающих операторы FOR, WHILE или REPEAT). 110 Debug information table overflow (Переполнение информационной таблицы отладки) 111 N/A 112 CASE constant out of range (Константа CASE нарушает допустимые границы) . 113 Error in statement (Ошибка в операторе). 114 114 Cannot call an interrupt procedure (Невозможно вызвать процедуру npерывания). 115 N/A 116 Must be in 8087 mode to compile this (Для компиляции необходим режим 8087). 117 Target address not found (Указанный адрес не найден). 118 118 Include files are not allowed here (Здесь не допускаются включаемые файлы). 119 No inherited methods are accessible here (В этом месте программы нет унаследованных методов). 120 N/A 121 Invalid qualifier (Неверный квалификатор). 122 Invalid variable reference (Недействительная ссылка на переменную). 123 Too many symbols (Слишком много символов). 124 Statement part too large (Слишком большой раздел операторов). 125 N/A 126 Files must be var parameters (Файлы должны передаваться как параметры-переменные). 127 Too many conditional symbols (Слишком много условных символов). 128 Misplaced conditional directive (Пропущена условная директива). 129 ENDIF directive missing (Пропущена директива ENDIF). 130 Error in initial conditional defines (Ошибка в условных определениях). 131 Header does not match previous definition (Заголовок не соответствует предыдущему определению). 132 Critical disk error (Критическая ошибка диска). 133 Cannot evaluate this expression (Нельзя вычислить данное выражение). 134 Expression incorrectly germinated (Некорректное завершение выражения). 135 Invalid format specifier (Неверный спецификатор формата). 136 Invalid indirect reference (Недопустимая косвенная ссылка). 137 Structured variable are not allowed here (Здесь нельзя использовать переменную структурного типа). 138 Cannot evaluate without System unit (Нельзя вычислить выражение без мо-дуля 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 (Недопустимая ссылка на процедуру или функцию) . 144 Cannot overlay this unit (Этот модуль не может использоваться в качестве оверлейного). 145 Too many nested scopes (Слишком много вложений). 146 File access denied (Отказано в доступе к файлу). 147 Object type expected (Здесь должен быть тип OBJECT) . 148 object types are not allowed (Нельзя объявлять локальные объекты). 149 VIRTUAL expected (Пропущено слово VIRTUAL). 150 Method identifier expected (Пропущен идентификатор инкапсулированного правила). 151 Virtual constructor are not allowed (Конструктор не может быть виртуальным). 153 Destructor identifier expected (Пропущен идентификатор деструктора). 154 Fail only allowed within constructor (Обращение к стандартной процедуре FAIL может содержаться только в конструкторе). 155 Invalid combination of opcode and operands (Недопустимая комбинация кода команды и операндов). 156 Memory reference expected (Отсутствует адрес). 157 Cannot add or subtract relocatable symbols (Нельзя складывать или вычитать перемещаемые символы). 158 Invalid register combination (Недопустимая комбинация регистров). 159 286/287 instructions are not enabled (Недоступен набор команд микропроцессоров 286/287). 160 Invalid symbol reference (Недопустимая ссылка на символ). 161 Code generation error (Ошибка генерации кода). 162 ASM expected (Отсутствует зарезервированное слово ASM).
№ п/п Код и название ошибки Характеристика ошибки Пояснение

1

Error 1: Out of memory

Нехватка памяти

Это сообщение выводится, когда компилятору не хватает памяти

2

Error 2: Identifier expected

Ожидался идентификатор

Возможно, имя вашего идентификатора совпадает со служебным словом

3

Error 3: Unknown identifier

Неизвестный идентификатор

Этот идентификатор не был описан

4

Error 4: Duplicate identifier

Идентификатор продублирован

Этот идентификатор уже исполь-зовался в текущем блоке программы

5

Error 5: Syntax error

Синтаксическая ошибка

В тексте найден неправильный символ

6

Error 6: Error in real constant

Ошибка в константе действительного типа

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

7

Error 7: Error in integer constant

Ошибка в константе целого типа

Константы, выходящие за пределы диапазона типа longint описы-ваются как действительные числа

8

Error 10: Unexpected end of file

Неожиданный конец файла

Количество операторов Begin и End не сбалансирована

9

Error 11: Line too long

Строка слишком длинная

Длина строки не должна превышать 127 символов

10

Error 12: Type identifier expected

Ожидается иденти-фикатор типа

Этот идентификатор не обозначает тип, как это должно быть

11

Error 15: File not found

Файл не найден

Файл не был найден ни в текущем каталоге, ни в других каталогах

12

Error 20: Variable identifier expected

Ожидается идентификатор переменной

Этот идентификатор не обозначает переменной, как должен был

13

Error 21: Error in type

Ошибка в типе

Этот символ не может начинать описание типа

№ п/п Код и название ошибки Характеристика ошибки Пояснение

14

Error 25: Invalid string length

Неправильная длина строки

Описанная максимальная длина строки должна быть в диапазоне 1…255

15

Error 26: Type mismatch

Несоответствие типов

Несовместимые типы переменной и выражения в операторе присваива-ния, несовместимые типы операн-дов в выражении, несовместимые типы формальных и фактических параметров в вызванной подпрограмме

16

Error 31: Constant expected

Ожидается константа

17

Error 32: Integer or real constant expected

Ожидается целая или действительная константа

18

Error 34: Invalid function result type

Неправильный тип результата функции

Правильными типами результата функции являются все простые типы

19

Error 36: BEGIN expected

Ожидается оператор Begin

20

Error 37: END expected

Ожидается оператор End

21

Error 38: Integer expression expected

Ожидается целое выражение

Предыдущее выражение должно быть целого типа

22

Error 41: Operand types do not match operator

Типы операндов не отвечают оператору

Оператор не может быть применён к операндам указанного типа

23

Error 42: Error in expression

Ошибка в выражении

Этот символ не может присутствовать в выражении

24

Error 50: DO expected

Ожидается служебное слово do

25

Error 54: Of expected

Ожидается служебное слово of

26

Error 57: THEN expected

Ожидается служеб-ное слово Then

№ п/п Код и название ошибки Характеристика ошибки Пояснение

27

Error 58: TO or DOWNTO expected

Ожидается служеб-ное слово to или downto

28

Error 62: Division by zero

Деление на нуль

Предыдущая операция пытается выполнить деление на нуль

29

Error 92: «[» or «(.» expected

Тут должна быть открывающая квадратная скобка

Вместо открывающей квадратной скобки можно использовать «(.»

30

Error 93: «]» or «).» expected

Квадратные скобки не закрыты

Вместо закрывающей квадратной скобки можно использовать «).»

31

Error 98: Integer variable expected

Ожидается переменная целого типа

32

Error 103: Integer or real variable expected

Ожидается пере-менная целого или вещественного типа

33

Error 108: Overflow in arithmetic operation

Переполнение в арифметической операции

Результат предыдущей операции выходит за пределы использованного типа данных.

34

Error 113: Error in statement

Ошибка в операторе

Оператор не может начинаться с этого символа

Понравилась статья? Поделить с друзьями:
  • Ошибка 20 посудомойка electrolux intuit
  • Ошибка 1drv ms
  • Ошибка 20 ограничение ресурса фн попробуйте перезагрузить ккт
  • Ошибка 1d2404 bmw f20
  • Ошибка 20 ваз 2115 2007 года