1.1 Элементы
диалоговой среды
1.1.1 Работа с окнами
1.1.2 Работа с меню
1.1.3 Работа с диалоговым
окном
1.2 Системное меню
1.2.1 Меню опции =
1.2.2 Меню опции File
1.2.3 Меню опции Edit
1.2.4 Меню опции Search
1.2.5
Меню опции Run
1.2.6 Меню опции Compile
1.2.7
Меню опции Debug
1.2.8 Меню опции Options
1.2.9 Меню опции Window
1.2.10 Меню опции Help
1.3 Директивы компилятора
1.4 Редактор
1.4.1 Команды перемещения
курсора
1.4.2 Команды удаление/
вставки
1.4.3 Команды работы с
блоками
1.4.4 Прочие команды
1.4.5 Команды,
передаваемые среде из редактора
1.5 Вызов Турбо- Паскаля
2. Сообщения и коды ошибок
2.1 Сообщение об ошибках
периода компиляции
2.2 Ошибки возникающие во время
выполнения программ
2.2.1 Ошибки,
обнаруживаемые ДОС
2.2.2 Ошибки ввода- вывода
2.2.3 Критические ошибки
2.2.4 Фатальные ошибки
1.1.1. Работа с окнами
1.1.2. Работа с меню
1.1.3. Работа с диалоговым окном
1.2. СИСТЕМА МЕНЮ
1.2.1. Меню опции =
1.2.2. Меню опции FILE
1.2.3. Меню опции EDIT
1.2.4. Меню опции SEARCH
1.2.5. Меню опции RUN
1.2.6. Меню опции COMPILE
1.2.7. Меню опции DEBUG
1.2.8. Меню опции OPTIONS
Активное состояние опции Create backup files
заставит среду при записи файла с текстом
программы проверить, существует ли уже
одноименный файл; если существует, он
будет переименован в файл с тем же именем
и расширением .ВАК, что позволит иметь на
диске предыдущую версию только что
сохраненной информации. Опция Insert mode
указывает на основной режим работы
редактора: если она активна, редактор
работает в режиме вставки, неактивна - в
режиме замены. Опция определяет лишь
начальный режим работы сразу после
загрузки Турбо Паскаля, так как в
процессе работы с редактором Вы всегда
можете переключить режим клавишей Ins.
Активизация опции Autoindent mode облегчит Вам
выделение отступами условных и составных
операторов, так как в этом случае каждая
новая строка будет начинаться с таким же
отступом от левого края экрана, что и
предыдущая строка. Опция Use tab characters
определяет использование символов
табуляции: если она активна, нажатие на
клавишу табуляции вставит в текст
специальный символ табуляции, если
неактивна, в текст будет вставлено нужное
число пробелов. Дополнительно к этому
активная опция Optimal fill заставит редактор
вставлять минимально возможное число
символов табуляции и пробелов л
нестандартной длине табуляционного
интервала (не 8 символов), активная опция
Backspace unindents связывает с клавишей «Забой»
функция уничтожения предыдущего символа
с учетом автоотступа: если слева от
курсора нет ни одного значащего символа,
нажатие на «Забой» сдвинет курсор к
позиции предыдущего автоотступа. Обычно
эта опция устанавливается в активное
состояние одновременно с опцией Autoindent mode.
Опция Cursor through tabs определяет перемещение
курсора по строке при нажатии клавиши
смещения курсора влево или вправо: если
она активна, курсор смещается скачком
всякий раз, когда в строке встречается
символ табуляции; при неактивной опции он
всегда смещается только на одну позицию.
В поле Tab size Вы можете задать длину
табуляционного интервала.
ENVIRONMENT/Mouse. Диалоговое окно опции показано
на рис.23.
Группа опций Right mouse button определяет способ
использования правой кнопки мыши в
соответствии со следующей таблицей:
Опция | Функция правой кнопки |
Nothing | Нажатие на кнопку игнорируется |
Topic search | Help/Topic search |
Go to cursor | Run/ Go To cursor |
Breakpoint | Debug/ Toggle breakpoint |
Evaluate | Debug/ Evaluate |
Add watch | Debug/ Watches/ Add watch |
Поле | Минимум | Максимум |
Window Heap Size | 24 Кбайт | 64 Кбайта |
Editor Heap Size | 28 Кбайт | 128 Кбайта |
Overlay Heap Size | 64 Кбайт | 256 Кбайта |
В поле Swap file directory можно указать «быстрый»
диск, с которым, среда будет производить
динамический обмен данными (свопинг) в
процессе своей работы. В качестве «быстрого»
диска обычно указываете» виртуальный
диск, т.е. участок оперативной памяти,
который используется подобно
механическому диску (виртуальный диск
организуется средствами ДОС). Если в этом
поле ничего не указано, для свопинга
используется текущий каталог.
ENVIRONMENT/Colors. С помощью диалогового окна
этой опции (рис.25) Вы можете установить
нужную цветовую палитру отдельных
элементов среды Турбо Паскаля. В колонке
Croup указаны следующие элементы среды:
Desktop - вид экрана; Watches - окно отладки;
Menus -меню; Call stack -окно стека;
Dialogs - диалоговые окна; Register - окно
регистров;
Editor - окна редактора; Output - окно программы;
Help -окно помощи; Compiler - окно компилятора.
В колонке Item детализируются эти элементы
(например, цвет рамки окна, цвет основных
символов, цвет выделения и т.п.). В поле
Foreground задается цвет символов, а в поле
Background - цвет фона.
1.2.9. Меню опции WINDOW
1.2.10. Меню опции HELP
1.4. РЕДАКТОР
Основные приемы работы с редактором
описаны в гл. 1. Ниже приводится полное
описание команд редактора. Все команды
редактора можно разделить на команды
перемещения курсора, команды удаления/вставки,
команды работы с блоками, прочие.
При их описании используются следующие
обозначения клавиш управления курсором:
ВЛ - курсор влево; ВВ - курсор вверх;
ВП - курсор вправо; ВН - курсор вниз.
1.4.1. Команды
перемещения курсора
Ctrl—S или ВЛ - на символ влево;
Ctrl—D или ВП - на символ вправо;
Ctrl—А или Ctrl—ВЛ - на слово влево;
Ctrl—F или Ctrl—ВП - на слово вправо;
Ctrl—Е или ВВ - на строку вверх;
Ctrl—X или ВН - на строку вниз;
Ctrl—W - прокрутка вниз на строку вместе с
курсором;
Ctrl—Z - прокрутка вверх вместе с курсором;
Ctrl—R или PgUp - на страницу вверх;
Ctrl—С или PgDn - на страницу вниз;
Ctrl—О S или НОМЕ - в начало строки;
Ctrl—О D или END - в конец строки;
Ctrl—О Е или Ctrl—HOME - в начало экрана;
Ctrl—О X или Ctrl—END - в конец экрана;
Ctrl—Q R или Ctrl—PgUp - в начало файла;
Ctrl—О С или Ctrl—PgDn - в конец файла;
Ctrl—Q В - в начало блока;
Ctrl—Q К - в конец блока;
Ctrl—Q P - на последнюю позицию (используется
после поиска или поиска/замены);
Ctrl—Q W - на последнюю ошибку.
1.4.2. Команды удаления/вставки
Ctrl—V или INS - включить/отключить режим
вставки;
Ctrl—N - вставить строку;
Ctrl—Y - удалить строку;
Ctrl—Н или «Забой» - стереть символ слева
от курсора;
Ctrl—G или DEL - стереть символ над курсором;
Ctrl—Т - стереть слово справа от курсора;
Ctrl—Q Y - стереть остаток строки справа от
курсора.
1.4.3. Команды работы с
блоками
При подготовке текстов программ
часто возникает необходимость перенести
фрагмент текста в другое место или
удалить его. Для такого рода операций
удобно использовать блоки - фрагменты
текста, рассматриваемые как единое целое.
Длина блока может быть достаточно
большой (до 64 Кбайт), он может занимать
несколько экранных страниц. В каждый
момент в среде может быть объявлен только
один блок в одном окне редактора. Обмен
блоками между окнами возможен только
через буфер редактора (см. опцию EDIT в
главном меню).
Ctrl—К В - пометить начало блока;
Ctrl—К К - пометить конец блока;
Ctrl—К Т - пометить в качестве блока слово
слева от курсора;
Ctrl—К Р - напечатать блок;
Ctrl—К С - копировать блок, начиная с
позиции курсора;
Ctrl—К V - переместить блок;
Ctrl—К Н - убрать выделение блока цветом;
повторное использование
Ctrl—К Н вновь выделит блок;
CW—К Y - удалить блок;
Ctrl—К R - читать блок из дискового файла;
Ctrl—KW-записать блок на диск;
Ctrl—КI - сместить блок вправо;
Ctrl—К U - сместить блок влево.
1.4.4. Прочие команды
Ctrl—Q F - искать по образцу;
Ctrl—L - продолжить поиск;
Ctrl—О А - искать по образцу и заменять;
Ctrl—и - прекратить дальнейшее выполнение
поиска или поиска и замены;
Ctrl—К п - установить маркер; п = 0..3 (см. ниже);
Ctrl—О п - искать маркер;
Ctrl—О W - искать ошибку;
Ctrl—О [ - искать правую парную скобку (см.
ниже);
Ctrl—О ] - искать левую парную скобку (см.
ниже);
Ctrl—Q L - восстановить испорченную строку (см.
ниже);
Ctrl—О Т или Ctrl—О Т - включить/отключить
табуляцию;
Ctrl—О F - переключить заполнение табуляции;
Ctrl—О I или Ctrl—Q I - включить/отключить
автоотступ;
Ctrl—О О - вставить настройку компилятора в
начало файла (см. ниже)
Назначение большинства команд
понятно без каких-либо комментариев, но
некоторые нуждаются в пояснении.
Ctrl—К п. Устанавливает в текущую позицию
курсора маркер с номером п = 0..3. Маркер на
экране невидим и никак не влияет на
исполнение программы. Команда
используется совместно с командой Ctrl—Q n (искать
маркер с номером п) для ускорения поиска,
нужных фрагментов текста при разработке
крупных программ. Обратите внимание -
комбинации клавиш Ctrl—К п набираются
следующим образом: вначале нажимается Ctrl,
затем, не отпуская ее, - К; после этого все
клавиши отпускаются и нажимается клавиша
с цифрой п. Точно так же набирается
команда Ctrl—О п.
Ctrl—Q ] и Ctrl—Q [. Эти команды используются
для поиска ближайшей парной скобки.
Команды позволяют отыскивать пары скобок
( и ), { и }, [ и ]. Подведите курсор так, чтобы
он указывал на одну из скобок, и дайте
соответствующую команду - редактор
отыщет нужную парную скобку.
Ctrl-O О. Эта команда заставит редактор
поместить в самое начало файла строки,
содержащие текущую настройку среды в
виде директив компилятора, например:
{$А+,В-,0+,E+.F+,G+,I+.L+.N+.0-,R+.S+.V+,X+}
{$М 16381,0,655360}
{$DEFINE single}
1.4.5. Команды,
передаваемые среде из редактора
Некоторые наиболее часто
используемые команды можно передать
среде непосредственно из режима
редактирования. Все они уже описаны выше,
когда рассматривалась система меню. Тем
не менее я повторю их здесь, чтобы Вам
было легче ими пользоваться.
F1 - получить справку;
F2 - записать файл из окна редактора на
диск;
F3 - прочитать файл с диска в окно
редактора;
F4 - исполнить до курсора (выполнить опцию
RUN/GO TO CURSOR);
F5 - распахнуть окно на весь экран или
вернуть ему прежние размеры;
F6 - активизировать следующее окно;
F7 - проследить процедуру (выполнить опцию
RUN/TRACE INTO)',
F8 - пропустить процедуру (выполнить опцию
RUN/STEP OVER);
F9 - компилировать программу (выполнить
опцию COMPILE/MAKE);
F10 - перейти в главное меню;
Ctrl—F1 - получить контекстную справку;
Ctrl—F2 - сбросить режим отладки;
Ctrl—F3 - активизировать окно программного стека;
Ctrl—F4 - вычислить выражение или показать/изменить переменную (выполнить опцию DEBUG/EVALUATE/MODIFY);
Ctrl—F5 - перейти к режиму установки положения и размеров окна;
Ctrl—F7 - добавить выражение в окно отладки (выполнить опцию DEBUG/ WATCHES/ ADD WATCH);
Ctrl—F8 - переключить контрольную точку (выполнить опцию DEBUG/TOGGLE BREAKPOINT);
Ctrl—F9 - выполнить компиляцию и прогон программы;
Ctrl—Del - очистить буфер редактора (опция =/CLEAR);
Ctrl—Ins - копировать блок в буфер редактора (опция=/ COPY);
Alt—«Пробел» - вызвать общесистемное меню ==;
Alt—С - вызвать меню компиляции COMPILE;
Alt—D - вызвать меню отладки DEBUG;
Alt—Е - вызвать меню редактора EDIT;
Alt—F - вызвать меню файловой службы FILE;
Alt—Н - вызвать меню справочной службы HELP;
АН—О - вызвать меню установок OPTIONS;
Alt—R - вызвать меню прогона программы RUN;
Alt—S - вызвать меню службы поиска SEARCH;
Alt—W - вызвать меню окон WINDOW;
Alt—X - выйти из Турбо Паскаля;
Alt—0 - получить список открытых окон;
Alt—F1 - получить последнюю справку;
Alt—F3 - закрыть активное окно;
Alt—F5 - показать окно программы;
Alt—F9 - выполнить опцию COMPILE/COMPILE;
Shift—Fl - получить список ссылок справочной службы;
Shift—F6 - активизировать предыдущее активное окно;
Shift—Del - перенести блок из окна редактора в буфер;
Shift—Ins - копировать буфер в окно редактора.
Кроме того, в зависимости от настройки мыши ее правая клавиша может передавать среде следующие команды:
· вызов справочной службы (HELP/TOPIC SEARCH);
· исполнить до курсора (RUN/GO TO CURSOR);
· переключить контрольную точку (DEBUG/TOGGLE BREAKPOINT);
· вычислить выражение (DEBUG/EVALUATE);
· добавить выражение в окно отладки (DEBUG/WATHCES/ADD WATCH).
Кроме того, в зависимости от настройки
мыши ее правая клавиша может передавать
среде следующие команды:
· вызов справочной службы (HELP/TOPIC SEARCH);
· исполнить до курсора (RUN/GO TO CURSOR);
· переключить контрольную точку (DEBUG/TOGGLE
BREAKPOINT);
· вычислить выражение (DEBUG/EVALUATE);
· добавить выражение в окно отладки (DEBUG/WATHCES/ADD
WATCH).
1.5. ВЫЗОВ ТУРБО ПАСКАЛЯ.
3. СООБЩЕНИЯ И КОДЫ
ОШИБОК
3.1. СООБЩЕНИЯ ОБ ОШИБКАХ ПЕРИОДА
КОМПИЛЯЦИИ
Среда Турбо Паскаля дает
исчерпывающую информацию о характере и
месте обнаруженной компилятором ошибки.
При обнаружении ошибки среда
автоматически загружает в окно редактора
исходный файл и помещает курсор около
того места, где в исходном тексте
обнаружена ошибка. При этом в верхней
строке редактора появляется
диагностическое сообщение. После нажатия
на любую клавишу (кроме F1) верхняя строка
восстанавливает свой первоначальный вид
и среда переходит к режиму
редактирования. Если после
появления сообщения об ошибке нажать F1 на
экране появится окно справочной службы с
детальной информацией об ошибке и
рекомендациями по ее устранению.
Некоторые ошибки в исходном тексте
обнаруживаются не сразу, а в ходе
продолжающегося контекстного разбора.
Например, несоответствие типов в
операторе присваивания не может быть
обнаружено до тех пор, пока не будет
вычислено целиком выражение в правой
части этого оператора. В таких случаях
ищите ошибку слева от курсора или в
предыдущей строке текста.
Ниже приводятся сообщения об
ошибках в том виде, в каком они появляются
в верхней строке редактора, а также
перевод сообщений справочной службы.
1 Out of memory (Выход за границы памяти).
Компилятору не хватает памяти. Имеется
ряд возможных решений этой проблемы:
. если в опции COMPILE/DESTINATION установлено
значение MEMORY, замените эту опцию на DISK;
. если в опции OPTIONS/LINKER/LINK BUFFER установлено
значение MEMORY, замените эту опцию на DISK;
. если Вы используете резидентные в
памяти обслуживающие программы, такие
как WINDOWS, SIDEKICK, NORTON, удалите их из памяти;
. если Вы используете интегрированную
среду TURBO.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 flies (Слишком много открытых
файлов).
Появление этой ошибки означает, что
конфигурационный файл CONFIG.SYS
операционной системы не включает
параметр FILES-xx или этот параметр
указывает слишком мало файлов. Увеличьте
число файлов до нужного значения,
например, до 20.
14 Invalid file пате (Неверное имя файла).
Имя файла неверно или указан
несуществующий путь.
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 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 (Типы операндов не
соответствуют операции).
Данная операция не может быть применена к
указанным операндам, например, 'A' div '2'.
42 Error in expression (Ошибка в выражении).
Данный символ не может участвовать в
выражении указанным образом. Возможно, Вы
забыли указать операцию между двумя
операндами.
43 Illegal assignment (Неверное присваивание).
Файлам и не типизированным переменным
нельзя присваивать значения.
Идентификатору функции можно присвоить
значение только внутри раздела
операторов данной функции.
44 Field identifier expected (Нужен идентификатор поля).
Попытка «пользовать запись целиком в том
месте, где требуется ссылка на какое либо
поле записи.
45 Object fie too large (Объектный файл слишком
большой).
Турбо Паскаль не может компоновать файлы
.OBJ больше 64 Кбайт.
46 Undefined external (Неопределенная внешняя
процедура).
Внешняя процедура или функция не имеет
соответствующего определения PUBLIC в
объектном файле. Убедитесь, что Вы
указали все объектные файлы в директивах
{$L <имя .ОВJ-файла>} и проверьте
написание идентификаторов процедуры или
функции в файле .ASM.
47 Invalid tyect file record (Неправильная запись
объектного файла).
Файл .ОВ. содержит неверную объектную
запись. Убедитесь, что данный файл
является действительно файлом .OBJ.
48 Code se>ment too large (Сегмент кода слишком
большой).
Максимальный размер кода программы или
программного модуля равняется 65520 байтам.
Разбейте Вашу программу или модуль на два
или более модулей.
49 Data seynent too large (Сегмент данных слишком
велик).
Максимальный размер сегмента данных
программы равен 65520 байтам, включая
данные, используемые программными
модулями. Если Вам нужно большее
количество глобальных данных, опишите
большие структуры с помощью указателей и
выделяйте для них память динамически с
помощью процедуры NEW.
50 DO ex/xcted (Нужен оператор DO).
51 InvalidPUBLJC definition (Неверное PUBLIC-определение).
Возможные причины сообщения:
. данный идентификатор получил тип PUBLIC с
помощью соответствующей директивы языка
ассемблера, но не соответствует описанию
EXTERNAL в программе или программном модуле
Паскаля;
. две или более директивы PUBLIC языка
ассемблера определяют один и тот же
идентификатор;
.файлы DBJ определяют символы PUBLIC, не
находящиеся в сегменте CODE.
52 Jnva/ic EXTRN definition (Неправильное EXTRN-определение).
Возможные причины сообщения:
. программа на ассемблере ссылается с
помощью директивы EXTERNAL на идентификатор,
который не описан в программе на Паскале
и не был описан в интерфейсных секциях
используемых программных модулей;
. ассемблерная программа ссылается на
идентификатор, обозначающий абсолютную
переменную (т.е. определенную словом 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 A;
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).
Оператор «<» не допускается в сочетании
с перемещаемыми ссылками на переменные.
Такие ссылки всегда имеют размер в слово.
706 Character expression expected (Предшествующее
выражение должно иметь символьный тип).
107 Too many relocation items (Слишком много
перемещаемых элементов).
Размер таблицы перемещения файла .ЕХЕ
превышает 64 Кбайта, что является верхним
пределом в Турбо Паскале. Если Вы
обнаружили эту ошибку, то это значит, что
программа просто слишком велика длина
обработки компоновщиком Турбо Паскаля.
Возможно также, что он» слишком велика
для выполнения в MS DOS. В таком случае нужно
выделить в программе основной раздел,
который выполнял бы обращение к двум или
более вспомогательным разделам с помощью
процедуры EXEC из модуля DOS (см. гл.11).
Ошибки с этими кодами не описаны в версии
6.0 системы Турбо
Паскаль.
112 CASE constant out of range (Константа CASE нарушает
допустимые граница).
Целочисленные константы оператора CASE
должны находиться в диапазоне от -32768 до
32767.
113 Error in statement (Ошибка в операторе).
Данный символ не может быть первым
символом в операторе.
114 Cannot call an interrupt procedure (Невозможно вызвать
процедуру прерывания).
Вы не можете непосредственно вызвать
процедуру обработки прерывания.
115
Ошибка с этим кодом не описана в версии 6.0
системы Турбо Паскаль.
116 Must be in 8087 mode tp compile this (Для компиляции
необходим режим 8087).
Данная программа может быть
скомпилирована только в режиме ($N+). В
состоянии {$N-} операции с типами SINGLE, DOUBLE,
EXTENDED и СОМР не допускаются.
117 Target address not found (Указанный адрес не
найден).
Команда COMPILE/FIND ERROR в среде Турбо Паскаля (или
поиск с помощью опции /F в командной
строке компилятора ТРС. ЕХЕ) не
обнаружила оператор, соответствующий
заданному адресу.
1 18 Include files are not allowed here (Здесь не
допускаются включаемые файлы).
Раздел операторов должен целиком
размещаться в одном файле.
119
Ошибка с этим кодом не описана в версии 6.0
системы Турбо Паскаль.
120 NIL expected (Нужен NIL).
121 Invalid qualifier (Неверный квалификатор).
Возможные причины сообщения:
• Вы пытаетесь индексировать переменную,
которая не является массивом;
• Вы пытаетесь указать поля в переменной,
которая не является записью;
• Вы используете в качестве указателя
переменную, которая не является
указателем.
122 Invalid variable reference (Недействительная
ссылка на переменную).
Предыдущая конструкция удовлетворяет
синтаксису ссылки на переменную, но она
не указывает адрес памяти. Возможно, Вы
вызываете функцию-указатель, но
забываете сослаться на результат с
помощью знака ^.
123 Too many symbols (Слишком много символов).
Программа или программный модуль
содержат более 64 Кбайт символов. Если Вы
компилируете программу с директивой {$D+},
то попробуйте отключить эту директиву
или разбейте программу на несколько
модулей.
124 Statement part too large (Слишком большой раздел
операторов).
Турбо Паскаль ограничивает размер
раздела операторов до величины примерно
24 Кбайта. Если Вы обнаружили эту ошибку,
поместите части раздела операторов в
одну или несколько процедур и вообще
сделайте Вашу программу более
структурированной.
125
Ошибка с этим кодом не описана в версии 6.0
системы Турбо Паскаль.
126 Files must be var parameters (Файлы должны
передаваться как параметры-переменные).
Вы пытаетесь передать процедуре или
функции параметр-значение файлового типа.
Параметры файлового типа должны быть
параметрами-переменными.
127 Too many conditioned symbols (Слишком много условных
символов).
Недостаточно памяти для определения
условных символов (слово, управляющих
командами условной компиляции).
Попытайтесь удалить некоторые символы
или уменьшить их длину.
128 Misplaced conditioned directive (Пропущена условная
директива).
Компилятор обнаружил директиву {$ELSE} или {$ENDIF}
без соответствующих директив {$IFDEF}, {SIFNDEF}
или {$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 (Этот модуль не может
использоваться в качестве оверлейного).
Попытка использовать в качестве
оверлейного модуль, который не был
скомпилирован с директивой {$О+}.
145... 14 6
Ошибки с этими кодами не описаны в версии
6.0 системы Турбо
147 Object type expected (Здесь должен быть тип OBJECT),
Этот идентификатор должен принадлежать к
типу OBJECT.
148 Local 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 (Недопустимая
комбинация кода команды и операндов).
Код ассемблерной команды не может иметь
такие операнды. Причины ошибки:
• указано слишком много или слишком мало
операндов для данной команды, например, INC
AX.BX или MOV АХ;
. количество операндов правильное, но их
типы или порядок следования не
соответствуют данной команде, например,
DEC 1, MOV AX,CL MOV AX.
156 Memory reference expected (Отсутствует адрес).
Операнд ассемблерной команды не содержит
адрес. Вероятно, Вы забыли выделить
квадратными скобками индексный регистр,
например MOVAX.BX+SI вместо MOV AX, [BX+SI].
157 Cannot add or subtract relocatable symbols (Нельзя
складывать или вычитать перемещаемые
символы).
В ассемблерных выражениях обоими
операндами в операциях сложения или
вычитания могут быть только ссылки на
константу. Идентификаторы переменных,
процедур, функций и меток являются
перемещаемыми символами и не могут
использоваться в качестве двух операндов
одновременно в таких операциях. Если VAR -
идентификатор переменной, a CONST -
константы, то предложения MOV AX,CONST+CONST и MOVE
AX.VAR+CONST будут правильными, в то время как
выражение MOV AX.VAR+VAR недопустимо.
158 Invalid register combination (Недопустимая
комбинация регистров).
Допустимыми комбинациями индексных
регистров являются [ВХ] [BP],[SI], [DI], [BX+SI], [BX+DI],
[BP+SI] и [BP+DI]. Другие комбинации (например, [АХ],
[ВР+ВХ], [SI+DX]) недопустимы. Заметим, что
локальные переменные размещаются в стеке
и доступ к ним организуется через регистр
ВР. Ассемблер автоматически добавляет [ВР]
в ссылках на такие переменные, поэтому в
операндах типа LOCAL [BX], где LOCAL -локальная
переменная, образуется недопустимая
ссылка LOCAL [ВР+ВХ].
159 286/287 instructions are not enabled (Недоступен набор
команд микропроцессоров 286/287).
Используйте директиву {$G+}, но учтите, что
такую программу можно исполнять только
на ПК, оснащенных микропроцессором Intel
80286/80237.
160 Invalid symbol reference (Недопустимая ссылка на
символ).
К указанному символу нельзя обратиться в
ассемблерной программе. Это может быть
следствием таких причин:
« Вы пытаетесь использовать ссылки на
стандартные процедуры (функции) или
специальные массивы MEM, MEMW, MEML, PORT и PORTW в
ассемблерных операндах;
• Вы обращаетесь к строковой,
вещественной константе или константе
типа SET в операнде ассемблерной команды;
• в ассемблерном операнде Вы обращаетесь
к процедуре или функции, написанной в
режиме INLINE;
• Вы пытаетесь получить с помощью
операции ©Result доступ к результату,
возвращаемому функцией;
. Вы пытаетесь использовать короткую
форму команды JMP для передачи управления
в непомеченный оператор программы.
161 Соde generation error (Ошибка генерации кода).
Ошибка возникает, в частности, при
компиляции ассемблерных фрагментов,
содержащих команды LOOP, LOOPE, LOOPNE, JCXZ, если
команда ссылается на недоступную метку.
162 ASM expected (Отсутствует зарезервированное
слово ASM).
3.2. ОШИБКИ, ВОЗНИКАЮЩИЕ ВО ВРЕМЯ ВЫПОЛНЕНИЯ ПРОГРАММ
Некоторые ошибки, обнаруженные во
время выполнения программы, приводят к
появлению на экране сообщения вида
Runtime error nnn at хххх:уууу
(Ошибка периода исполнения ппп по адресу
хххх: уууу), где ппп - номер ошибки. хххх:
уууу - адрес (сегмент и смещение). После
этого сообщения программа завершает свою
работу. Ошибки периода исполнения
делятся на четыре категории: ошибок
обнаруживаемые ДОС (коды ошибок с 1 до 99),
ошибки ввода-вывода 100 по 149), критические
ошибки (с 150 по 199) и фатальные ошибки (коды
ошибок с 200 до 255).
3.2.1. Ошибки,
обнаруживаемые ДОС
1 Invalid function number (Неверный номер функции).
Вы пытаетесь вызвать несуществующую
функцию ДОС.
2 File not found (Не найден файл).
Ошибка генерируется процедурами RESET, APPEND,
RENAME или ERASE в случае, если имя, присвоенное
файловой переменной, указывает
несуществующий файл.
3 Path not found (Путь не найден).
Ошибка генерируется процедурами:
. RESET, REWRITE, APPEND или ERASE в случае, если имя,
присвоенное файловой переменной,
является недействительным или указывает
на несуществующий подкаталог;
. СНDIR, MKDIR или RMDIR в случае, если путь
является недействительным или указывает
несуществующий подкаталог.
4 Too many open files (Слишком много открытых
файлов).
Ошибка генерируется процедурами RESET, REWRITE
или APPEND в случае, если программа имеет
слишком много открытых файлов. ДОС не
позволяет использовать более 15 открытых
файлов для каждого процесса. Если ошибка
возникла при наличии менее 15 открытых
файлов, то она может указывать на то, что
файл CONFIG.SYS не содержит параметра FILES—xxx
или что этот параметр задает слишком мало
файлов. Увеличьте параметр FILES-xxx до
какого-либо подходящего значения,
например, до 20.
5 file access defined (Отказано в доступе к файлу).
Данная ошибка генерируется процедурами:
• RESET или APPEND в случае, когда имя,
присвоенное файловой переменной,
указывает каталог или файл, доступный
только для чтения, в то время как параметр
FILEMODE файловой переменной содержит
указание на запись данных;
• REWRITE в случае, когда каталог заполнен,
или если имя, присвоенное файловой
переменной, задает каталог или
существующий файл, Доступный только для
чтения;
• RENAME в случае, если имя, присвоенное
файловой переменной, указывает каталог
или если новое имя указывает
существующий файл;
• ERASE в случае, если имя, присвоенное
файловой переменной, указывает каталог
или файл, доступный только для чтения;
• MKDIR в случае, если файл с тем же именем
уже существует в порождающем каталоге,
если нет места в порождающем каталоге или
если путь к каталогу содержит имя
логического устройства;
• RMDIR в случае, если каталог не является
пустым, если путь не определяет каталог
или если путь задает корневой каталог;
« READ или BLOCKREAD в случае типизированного
или не типизированного файла, если файл
не открыт для чтения;
• WRITE или BLOCKWRITE для типизированного или
не типизированного файла в случае, если
этот файл не открыт для записи.
6 Invalid file handle (Недопустимый файловый канал).
Данная ошибка генерируется в случае,
когда системному вызову WC передается
недопустимый файловый канал. Эта ошибка
не должна возникать в правильно
работающей программе. Ее появление
является свидетельством того, что
файловая переменная, каким-либо образом
испорчена.
12 Invalid file access code (Недействительный код
доступа к файлом).
Ошибка генерируется процедурами RESET или
APPEND, если значение параметра FILEMODE в
файловой переменной не является
допустимым.
15 Invalid drive number (Недопустимый номер
дисковода),
Ошибка генерируется процедурой GETDIR в
случае, если номер дисковода не является
допустимым.
16 Cannot remove current directory (Нельзя удалить
текущий каталог).
Ошибка генерируется процедурой RMDIR в
случае, если путь указывает текущий
каталог.
17 Cannot rename across drives (Нельзя при
переименовании указывать разные
дисководы).
Генерируется процедурой RENAME в случае,
если оба файла не находятся на одном и том
же диске.
3.2.2. Ошибки ввода-вывода.
Если один из операторов
компилировался с директивой {$!+}, то
ошибка ввода-вывода приводит к
прекращению выполнения программы. В
состоянии {$!-} программа продолжает
выполняться, а ошибка возвращается
функцией IOKESULT.
100 Disk read error (Ошибка чтения с диска).
Генерируется процедурой READ в
типизированном файле в случае, если Вы
пытаетесь осуществить считывание из
полностью прочитанного файла.
101 Disk write error (Ошибка записи на диск).
Ошибка генерируется процедурами CLOSE, WRITE,
WRITELN, FLUSH в случае, если диск заполнен.
102 file not assigned (Файлу не присвоено имя).
Ошибка генерируется процедурами RESET, REWRITE,
APPEND, RENAME и ERASE в случае, если файловой
переменной не было присвоено имя файла с
помощью обращения к процедуре ASSIGN.
103 File not open (Файл не открыт).
Ошибка генерируется процедурами CLOSE, READ.
WRITE, SEEK, EOF, FILEPOS, FILESIZE, FLUSH, BLOCKREAD, BLOCKWRITE в
случае, если файл не открыт.
104 file not open for input (Файл не открыт для ввода).
Ошибка генерируется процедурами READ, READLN.
EOF, ЕОLN, SEEKEOF или SEEKEOLN в текстовом файле в
случае, если файл не открыт для ввода.
105 File not open for output (Файл не открыт для вывода).
Ошибка генерируется процедурами WRITE или
WRITELN в текстовом файле в случае, если файл
не открыт для вывода.
106 Invalid numeric format (Неверный числовой формат).
Генерируется процедурами READ или READLN в
случае, если числовое значение, считанное
из текстового файла, не соответствует
правильному числовому формату.
3.2.3. Критические ошибки
150 Disk is write protected (Диск защищен от записи).
151 Unknown unit (Неизвестный модуль). .
152 Drive not ready (Дисковод находится в
состоянии «не готов»)
153 Unknown command (Неопознанная команда).
154 CRC error in data (Ошибка в исходных данных).
155 Bad drive reguiest 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 (Сбой аппаратуры).
3.2.4. Фатальные ошибки
Эти ошибки всегда приводят к
немедленной остановке программы.
200 Division by zero (Деление на ноль).
201 Range check error (Ошибка при проверке границ).
Ошибка генерируется операторами,
скомпилированными в состоянии {$R+}, при
возникновении одной из следующих
ситуаций:
. индексное выражение массива находилось
вне допустимого диапазона;
. была осуществлена попытка присвоить
переменной значение, находящееся вне
диапазона переменной;
• была осуществлена попытка передать
значение, находящееся вне допустимого
диапазона, в качестве параметра
процедуре или функции.
202 Stack overflow error (Переполнение стека).
Эта ошибка генерируется на входе в
процедуру или функцию, скомпилированную
в режиме {$3+}, в случае, если нет
достаточной области для размещения
локальных переменных подпрограммы.
Увеличьте размер стека, используя
директиву компилятора {$М}.
203 Heap overflow error (Переполнение кучи).
Эта ошибка генерируется процедурами NEW
или GETMEM в случае, если в куче нет
свободной памяти требуемого размера.
204 Invalid pointer operation (Недействительная
операция с указателем).
Эта ошибка генерируется процедурами DISPOSE
или FREEMEM в случае, когда указатель имеет
значение NIL или указывает на адрес,
лежащий за пределами динамически
распределяемой области памяти.
20J Floating point overflow (Переполнение при
операции с плавающей запятой).
В результате выполнения операции с
плавающей запятой получено слишком
большое вещественное число.
206 Floating point underflow (Исчезновение порядка при
операции с плавающей запятой).
Эта ошибка генерируется только в том
случае, если используется сопроцессор
8087/80287/80387 с управляющим словом, которое
демаскирует ошибку исчезновения порядка.
По умолчанию исчезновение порядка
приводит к возвращению результата,
равного нулю.
207 Invalid floating point operation (Недопустимая
операция с плавающей запятой).
Возможные причины сообщения:
• аргумент функций TRUNC или ROUND не может
быть преобразован в целое число,
находящееся внутри диапазона типа LONGINT (от
–214783648 до +214783647);
отрицательный аргумент функции SQRT (извлечение
квадратного корня);
• аргумент функции LN (логарифм) равен
нулю или имеет отрицательное значение;
• произошло переполнение стека
сопроцессора.
208 Overlay manager not installed (He установлена
подсистема управления оверлеем).
Ваша программа вызывает оверлейную
процедуру подсистема управления
оверлеем не инициирована. В( программе
отсутствует обращение к процедуре OVRINIT к
этой процедуре завершилось с ошибкой.
Нужно имей в каком-либо из оверлейных
модулей содержится раздел программе
необходимо создать дополнительный или
использовать имеющийся не оверлейный
модуль, вызывающий процедуру разделе
инициализации, и указать этот модуль в
предложение USES перед любым из оверлейных
модулей.
209 Overlay file read error (Ошибка чтения
оверлейного файла).
Ошибка чтения произошла, когда
подсистема управление оверлеем пыталась
считать оверлейный модуль из оверлейного
файла.
210 Object not initialized (He инициирован объект).
Вы обращаетесь к виртуальному правилу
применительно к неинициированному
объекту (до вызова конструктора).
211 Call to abstract method (Вызов абстрактного
правила).
Эта ошибка генерируется правилом ABSTRACT
модуля OBJECT при работе в среде Turbo Vision в
случае обращения к абстрактному правилу,
т.е. к виртуальному правилу, которое
разработано специально для его замены в
объектах-потомках.
212 Stream registration error (Ошибка в регистрируемом
объекте).
Эта ошибка генерируется правилом REGISTRTYPE
модуля OBJECT при работе в среде Turbo Vision в
случае возни
следующих ошибок:
• запись регистрируемого потока не
содержит cei
• поле OBJTYPE записи регистрируемого
потока
• указанный тип уже был зарегистрирован;
. существует другой тип с таким же полем
OBJT
213 Collection index out of range (Набираемый в границ
диапазона).
Индекс, передаваемый правилу TCOLLECTION Turbo
Vision, выходит за границы диапазона.
214 Collection overflow error (Переполнение набора)
Эта ошибка генерируется правилом TCOIXEC
среде Turbo Vision в случае, если делается
попытка набору, который нельзя расширять.