Паскаль ошибка записи на диск

Ошибка при добавлении в файл. Ошибка 101: Ошибка записи на диск (Error 101: Disk write error). Turbo Pascal Решение и ответ на вопрос 382455

Zarechnev

16 / 16 / 15

Регистрация: 25.09.2011

Сообщений: 104

1

12.11.2011, 19:10. Показов 9732. Ответов 10

Метки 1, blockwrite, disk is full, disk write error, error 101, file, filemode, files, reset, rewrite, runtime error 101, school pak, write, writeln, доступ, запись, ошибка 101, ошибка записи на диск, переполнение диска, режим доступа, файл, файлы, Чтение (Все метки)


Здравствуйте, возникла проблема такого плана.
Нужно произвести добавление записи в файл, но после успешного создания и чтения вылазиет ошибка:
Ошибка 101: Ошибка записи на диск.

Я понял, что ошибка кроется в процедуре add; в строке №93

Pascal
1
Write(F, baza);

Узнал, что эта ошибка появляется из-за «переполенния» файла. Своими силами больше не могу ничего сделать, поэтому пишу сюда. Надеюсь на вашу помощь.

ИСХОДНИК:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
Program STUDENT;
Uses CRT;
Type
rec=record
fio:string[30];
bal:array [1..4] of byte;
end;
Var
kol : Byte; { Число студентов }
n:Integer;
baza:rec;
F:file of rec;
 
{ ВВОД ФИО СТУДЕНТОВ }
Procedure Vvod;
var
j,i : Byte; { Счетчик для массива ФИО}
Begin
Write(' Введите желаемое кол-во студентов:');
ReadLn(kol);
WriteLn(' Введите инициалы студентов:');
WriteLn;
REWRITE(F); { Открываем файл для записи}
   { Запись ФИО студентов}
   For i:= 1 to kol do
      Begin
      Write(' ФИО ',i,' студента: ');
      ReadLn(baza.fio);
      TextColor(Green);
      WriteLn(' Введите его 4 оценки:');
      TextColor(White);
   { Запись оценок по предметам}
         For j:= 1 to 4 do
            Begin
            Write(' Оценка за ',j,' предмет-');
            ReadLn(baza.bal[j]);
            End;
      WriteLn;
      Write(F,baza);
      End;
CLOSE(F);
WriteLn;
WriteLn(' Запись успешно завершена. Нажмите Enter');
ReadLn;
End;
 
{ ВЫВОД ИНФОРМАЦИИ О СТУДЕНТАХ}
Procedure Vyvod;
Var
j,n: Byte;
Begin
n:=0;
RESET(F);
WriteLn('СПИСОК СТУДЕНТОВ:');
While not eof(F) do      { Пока не конец файла, производим чтение}
   With baza do
      Begin
      n:=n+1;            { Нумерация студентов}
      Read(F, baza);     { Читам запись из файла}
      Write(n,' ',baza.fio);   { и выводим построчно на экран}
         For j := 1 to 4 do
            Write(' ',baza.bal[j]);
      WriteLn;
      End;
CLOSE(F);
WriteLn(' Чтение успешно завершено. Нажмите Enter.');
ReadLn;
End;
 
{ ДОБАВЛЕНИЕ СТУДЕНТА }
Procedure add;
var
i,j,num:Byte;
Begin
RESET(F); { Открываем файл для добавления}
SEEK(F, FileSize(F));
Write(' Введите кол-во добавляемых:');
ReadLn(num);
   { Добавляем студентов}
   For i:= 1 to num do
      Begin
      Write(' ФИО ',i,' студента: ');
      ReadLn(baza.fio);
      TextColor(Green);
      WriteLn(' Введите его 4 оценки:');
      TextColor(White);
   { Запись оценок по предметам}
         For j:= 1 to 4 do
            Begin
            Write(' Оценка за ',j,' предмет-');
            ReadLn(baza.bal[j]);
            End;
         Write(F, baza);
      End;
CLOSE(F);
WriteLn;
WriteLn(' Добавление успешно завершено. Нажмите Enter');
ReadLn;
End;
 
{ ГЛАВНАЯ ПРОГРАММА }
BEGIN
CLRSCR;
TextColor(Yellow);
WriteLn(' Программу разработал студент гр. 11ИЭ1Б Заречнев Андрей.');
WriteLn(' Запись и чтение инф-ии о студентах из файла.');
TextColor(White);
WriteLn;
ASSIGN(F,'STUD');
vvod;
vyvod;
add;
vyvod;
WriteLn;
WriteLn(' Нажмите Enter для выхода.');
ReadLn;
END.

Добавлено через 1 час 9 минут
Код-то не такой страшный
С комментариями тем более…

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Почетный модератор

64272 / 47571 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

12.11.2011, 21:54

2

У меня в Турбо Паскале все работает, в том числе и записывает без ошибок.



0



2857 / 1986 / 788

Регистрация: 23.09.2010

Сообщений: 4,877

12.11.2011, 21:57

3

Zarechnev, проверяли не в School Pak случайно?



0



16 / 16 / 15

Регистрация: 25.09.2011

Сообщений: 104

12.11.2011, 22:57

 [ТС]

4

да. через скул пак. через турбо все отлично? надо будет скачать, проверить. спасибо за информацию



0



2857 / 1986 / 788

Регистрация: 23.09.2010

Сообщений: 4,877

12.11.2011, 23:44

5

Zarechnev, тогда понятно.Это такой косяк. Смело эмулируйте в DosBox другой TP (можно скачать здесь на форуме).



0



16 / 16 / 15

Регистрация: 25.09.2011

Сообщений: 104

13.11.2011, 20:35

 [ТС]

6

Да, в Турбо все отлично работает.
И вот по ходу доработки программы возникло еще несколько вопросов:

1) Как удалить часть записи из файла не используя truncate? (в моем случае — запись о студенте)
2) Как рациональней организовать проверку на корректность данных? Т.е. если файл не создан, вывод сообщения об ошибке. Знаю что используется IOResult, но как именно, не представляю.

Если кому-то будет интересно и появится желание помочь, вот исходник с исполняемым файлом:
Скачать pas + exe

Там у меня есть мелкие ошибки, которые никак не могу определить, а именно:
-При выборе пункта меню №3 и вводе данных(когда файл еще не создан, т.е. при 1м запуске программы) вылетает из программы, компилятор пишет, что файл не открыт, хотя все проверял.
-Каким то образом(а каким не знаю) при создании файла и вводе информации, в этой же процедуре происходит ее вывод, которого быть не должно.
— <…>
Заранее благодарю за помощь.



0



Puporev

Почетный модератор

64272 / 47571 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

13.11.2011, 21:33

7

Цитата
Сообщение от Zarechnev
Посмотреть сообщение

Как удалить часть записи

Никак, только запись целиком, если последняя то

Pascal
1
2
seek(f,fileseze(f)-2);
truncate(f);

если не последняя, сдвиг всех элементов начиная с i+1 на 1 вверх, потом тоже самое.

Добавлено через 2 минуты

Цитата
Сообщение от Zarechnev
Посмотреть сообщение

Т.е. если файл не создан, вывод сообщения об ошибке. Знаю что используется IOResult,

Pascal
1
2
3
4
5
6
{$I-}reset(f);{$I+}
if IOResult<>0 then
 begin
  write('Файл еще не создан');
  rewrite(f);
 end;

или другой вариант, например выход из процедуры или программы.



0



16 / 16 / 15

Регистрация: 25.09.2011

Сообщений: 104

13.11.2011, 21:44

 [ТС]

8

Так, с этим понял, спасибо, а насчет мелких непонятных ошибок можете подсказать?

Добавлено через 7 минут
А вообще, чтобы я вас не доставал вопросами, где можно прочитать про файлы?
Где все на конкретных примерах разибрается, а не просто статья с названиями и назначениями процедур.



0



Почетный модератор

64272 / 47571 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

14.11.2011, 07:43

9

Конкретно что читать я не знаю, основы описаны практически везде, а навыки приобретал методом проб и ошибок.
Можно вот это посмотреть.
http://vtit.kuzstu.ru/books/shelf/128/sod/sd.html



1



Mawrat

13091 / 5872 / 1706

Регистрация: 19.09.2009

Сообщений: 8,808

27.05.2013, 10:38

10

Цитата
Сообщение от Zarechnev
Посмотреть сообщение

Здравствуйте, возникла проблема такого плана.
Нужно произвести добавление записи в файл, но после успешного создания и чтения вылазиет ошибка:
Ошибка 101: Ошибка записи на диск.
Write(F, baza);
School Pak

В некоторых сборках School Pak при попытке выполнить запись в файл, например, с помощью Write(), Writeln(), BlockWrite(), возникает ошибка времени выполнения:

«Ошибка 101: Ошибка записи на диск» (Error 101: Disk write error)

Это происходит из-за того, что в сборке School Pak по умолчанию может быть задан режим доступа к файлам с разрешением только на чтение. Режим доступа устанавливается через системную переменную FileMode (модуль System):

FileMode = 0 — только чтение.
FileMode = 1 — только запись.
FileMode = 2 — разрешено и чтение и запись.

По умолчанию в Borland/Turbo Pascal установлено: FileMode = 2, а в School Pak может быть: FileMode = 0 — только чтение.
Поэтому, чтобы решить эту проблему, надо в самое начало кода основной программы записать строку:

Pascal
1
FileMode := 2;


Примечание. Даже если FileMode = 0, но при этом файл открыт через вызов Rewrite(), то к такому файлу открывается доступ в режиме чтение/запись. Поэтому после выполнения Rewrite() запись в файл при любом значении FileMode будет происходить без ошибок. Но если файл открыть через Reset(), то доступ к нему однозначно определяется значением системной переменной FileMode. Как решается эта проблема, описано выше — с помощью присвоения:

Pascal
1
FileMode := 2;



2



Puporev

27.05.2013, 10:50


    Ошибка при добавлении в файл. Ошибка 101: Ошибка записи на диск (Error 101: Disk write error).

Не по теме:

Правда теме 2 года…



0



Ошибки ввода-вывода

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

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

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

Ошибка генерируется
процедурами Close, Write, WriteLn, Flush, если на
диске нет свободного места.

102
File not assigned (
Файл
не
связан)

Ошибка
генерируется процедурами Reset, Rewrite,
Append, Rename и Erase, если с файловой переменной
не было связано имя физического файла
посредством обращения к процедуре
Assing.

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

Ошибка
генерируется
процедурами
Close, Read, Write, Seek, Eof, FilePos, 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
Bad drive request structure length (Неправильная длина
структуры запроса дисковода)

152
Drive not ready (Дисковод не готов)

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

154
CRC error In data (Ошибка контроля данных)

155
Bad drive request structure length (При обращении к
диску указана неверная длина структуры)

156
Disk seek error (Ошибка при поиске дорожки
диска)

157
Unknown media type (Неизвестный тип носителя)

158
Sector not found (
Сектор
не
найден)

159
Printer out of paper (
Принтер
без
бумаги)

160
Device write fault (Неисправное устройство
записи)

161
Device read fault (Неисправное устройство
чтения)

162
Hardware
failure (Сбой аппаратных средств)
.

Приложение №2

НАЗНАЧЕНИЕ
ФУНКЦИОНАЛЬНЫХ КЛАВИШ

Горячая

клавиша

Эквивалентная

команда
меню

Функция

[F1]

Активизация
окна контекстно-зависимой помощи

[Alt+F1]

Возврат к
предыдущей справке

[Ctrl+F1]

Активизация
синтаксической справки, т.е. справки
об операторе, на который указывает
маркер

[Shift+F1]

Help/Index

Вызов содержания
справочной подсистемы

[F2]

[F1]

[Ctr+F2]

[Alt+F1]

Help/Previous topic

[F3]

[Ctrl+F1]

Help/Topic search

[Alt+F3]

Window /Close

Закрытие активного
окна

[Ctrl+F3]

Debug/Call Stack

Открытие
окна протокола используемых процедур

[F4]

Run/ Goto Cursor

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

[Ctrl+F4]

Dеbug/Evaluate/Modify

Присмотр и
изменение значений переменных

[F5]

Window/Zoom

Изменение
(увелич./уменьшен.) размера активного
окна

[Alt+F5]

Debug/User Screen

Переключение
на пользовательский экран

[Ctrl+F5]

Window/Size/ Move

Изменение
положения и размера окна

[F6]

Window/Next

Переход к
следующему окну

[Snift+F6]

Window/Pfevious

Возврат к
предыдущему окну

[F7]

Run/Trace Into

Трассировка
программы пооператорно с пооператорным
выполнением всех подпрограмм

[Alt+F7]

Tools/Goto
previous

Переход
к предыдущей строке в окне сообщений

[Ctrl+F7]

Debug/Add watch

Дополнение
списка переменных, наблюдаемых в
Watch-окне

[F8]

Run/Step over

Трассировка
программы пооператорно с выполнением
подпрограмм без пооператорной
детализации

[Alt+F8]

Tools/Go to next

Переход
к следующей строке в окне сообщений

[Ctrl+F8]

Установка
/отмена контрольной точки на строке
программы, указываемой курсором

[F9]

Compile/ Make

Компиляция
и редактирование связей программы

[Alt+F9]

Compile/ Compile

Компиляция
программы из активного окна

[Ctrl+F9]

Run/Run

Компиляция
и выполнение программы под управлением
интегрированной инструментальной
оболочки

[F10]

Активизация
строки меню

[Alt+F10]

Вызов локального
меню

[Alt+Литера]

Открытие
озаглавленного выбранной литерой
подчиненного меню из строки меню

[Alt+Backsp]

Edit/Undo

Отмена всех
изменений в текущей строке

[Alt+X]

File/Exit

Завершение
сеанса работы с ТП с сохранением
(после подтверждения) файлов, измененных
редактором текста

[Alt+Цифра]

Переход к окну
с указанным номером

[Alt+0]

Window/List

Вызов
окна, в котором содержится список
всех открытых окон

[Ctrl+Del]

Edit/Clear

Удаление
выделенного блока

[Ctrl+Ins]

Edit/Copy

Копирование
блока в буфер промежуточного хранения

[Shift+Del]

Edit/Cut

Перенос
выделенного блока в буфер промежуточного
хранения

[Shift+Ins]

Edit/Paste

Копирование
блока из буфера промежуточного
хранения в окно редактирования

Приложение №3

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

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

Приложения написанные на Free Pascal могут генерировать ошибку времени выполнения (Run Time Error) когда в программе обнаруживаются определённые аварийные состояния . Этот документ содержит список возможных ошибок и описание их возможных причин.


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

Была попытка неправильного вызова системной функции.


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

Генерируется при попытке перенаименования, стирания или открытия несуществующего файла.


3 Path not found (Путь(директория) не найден)

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


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

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


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

Было запрешено получение доступа к файлу. Эта ошибка может произойти по нескольким причинам:

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

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

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

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

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

  • При попытке удалить директорию или файл, когда это не возможно.

  • При неимении прав на доступ к данному файлу.


6 Invalid file handle (Неправильный хэндл файла)

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


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

Генерируется когда процедуры reset или rewrite вызываются с неправильным параметром FileMode.


15 Invalid drive number (Неправильный номер диска)

Генерируется когда в функции Getdir или ChDir был передан неправильный номер диска.


16 Cannot remove current directory (Невозможно удалить текущую директорию)

Генерируется при попытке удалить текущую директорию.


17 Cannot rename across drives (Можно переименовывать файлы только в пределах одного диска)

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


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

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


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

Генерируется когда Вы пытаетесь записать данные на переполненый диск.


102 File not assigned (Файл не определён)

Генерируется функциями Reset, Rewrite, Append, Rename и Erase, При передаче в них файловой переменной, для которой не была выполнена функция AssignFile.


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

Генерируется следующими функциями : Close, Read, Write, Seek, EOf, FilePos, FileSize, Flush, BlockRead, и BlockWrite если файл не был открыт.


104 File not open for input (Файл не открыт для чтения)

Генерируется функциями Read, BlockRead, Eof, Eoln, SeekEof и SeekEoln если файл не был открыт при помощи Reset.


105 File not open for output (Файл не открыт для записи)

Генерируется функцией write если текстовый файл не был открыт при помощи Rewrite.


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

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


150 Disk is write-protected (Диск защищён от записи)

(Критическая ошибка)


151 Bad drive request struct length (Неправильная длина структуры запроса)

(Критическая ошибка)


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

(Критическая ошибка)


154 CRC error in data (Ошибка контрольной суммы в данных)

(Критическая ошибка)


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 (Сбой железа)

(Критическая ошибка)


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

Приложение пыталось разделить число на ноль.


201 Range check error (Ошибка проверки границ)

Если вы компилировали прогамму с включённой провереой границ, Вы можете получить эту ошибку в следующих случаях:

  1. Массив был вызван с индексом, выходящим за декларированые пределы.

  2. Попытка присвоить значение переменной, выходящее за декларированые границы (для instance и enumerated типов).


202 Stack overflow error (Переполнение стека)

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


203 Heap overflow error (Переполнение кучи)

Размер кучи превысил максимально возможный размер. Генерируется при попытке выделить память непосредственно функциями New, GetMem и ReallocMem, или когда экземпляр класса или объекта создаётся и памяти не достаточно. Пожалуйста учтите что, по умолчанию, Free Pascal поддерживает увеличение кучи, то есть, если необходимо, будет произведена попытка её увеличения. Как бы то ни было, если размер кучи превысил максимально допустимый системой и
железом, то Вы получите эту ошибку.


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

Будет сгенерирована при вызове функций Dispose или Freemem с неправильным указателем (чаще всего, Nil)


205 Floating point overflow (Максимальная границы числа с плавающей точкой)

Вы попытались использовать или создать слишком большое число с плавающей точкой.


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

Вы попытались использовать или создать слишком маленькое число с плавающей точкой.


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

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


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

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


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

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


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

Генерируется когда неправильный тип регистрируется в модуле objects.


213 Collection index out of range (Индекс элемента коллекции выходит за допустимые границы)

Генерируется когда Вы попытались обратиться к элементу коллекции с выходящим за допустимые границы индексом (модуль objects).


214 Collection overflow error (Переполнение коллекции)

Размер коллекции превысил максимально допустимый размер, а Вы попытались добавить новый элемент (модуль objects).


215 Arithmetic overflow error (Арифметическое переполнение)

Эта ошибка генерируется когда результат операции превысил допустимые границы. В отличие to Turbo Pascal, эта ошибка генерируется только для 32-bit и 64-bit арифметических переполнений. Это происходит согласно тому, что все операнды конвертируются в 32-bit или 64-bit, до того как производить вычисления.


216 General Protection fault (GP Ошибка защиты памяти)

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

  1. Попытка получить разуказатель для nil.

  2. Попытка получить доступ к выходящему за допустимые границы участку памяти (например, вызов move с неправильной длиной).


217 Unhandled exception occurred (Произошо неизвестное исключение)

Произошло исключение, и для него не существеет хэндла. Модуль sysutils устанавливает handler(менеджер), который отлавливает все исключения, и безопасно выходит в случае обнаружения оного.


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

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


227 Assertion failed error (Сбой утверждения)

Утверждение провалено, и процедурная переменная AssertErrorProc не была уcтановлена.


Вихрова Наталья Николаевна

Категория: Turbo Pascal

Опубликовано: 18 января 2014

Сообщения об ошибках компиляции в среде Turbo Pascal

В этом материала сообщения об ошибках компиляции приведены на русском языке. Удобной Вам работы в среде Turbo Pascal.

1. Недостаточно оперативной памяти. Следует воспользоваться стандартными средствами расширения оперативной памяти (удаление лишних драйверов, других резидентных программ). Можно также воспользоваться размещением скомпилированного файла на диске, используя для этого команду меню CompileDestination, а также поместить буфер компоновщика на диске, используя команду меню OptionsLinkerLink buffer. Можно также варьировать размерами стека и динамической памяти, используя команду меню OptionsMemory sizes, а также воспользоваться рядом других способов, о которых сказано в
справочной системе.

2. В данном месте программы должен находиться идентификатор.
3. Неизвестный (не определенный ранее) идентификатор.
4. Идентификатор определяется второй раз.
5. Синтаксическая ошибка (нарушены правила написания
предложения).
6. Ошибка в изображении вещественного числа.
7. Ошибка в изображении целого числа.
8. Строковая константа превышает допустимый размер (255 символов). Вероятно, пропущена закрывающая кавычка.
10. Неожиданное завершение программы. Вероятно, не сбалансировано число зарезервированных слов begin и end, неправильно
оформлен файл, добавляемый директивой {$1 filename}, не закрыт какой-либо комментарий.
11. Компилируемая строка превышает 127 символов.
12. В данном месте программы требуется идентификатор типа.
13. Попытка открыть в среде программирования количество файлов больше, чем допускается в операционной системе.
14. Неправильное имя или путь файла.
15. Файл не найден ни в текущем, ни в заданном каталоге.
16. Диск, куда записывается информация, не имеет свободного места.
17. Ошибка в директиве компилятора, или она используется в недопустимом месте (глобальная директива – не в начале программы).
18. Слишком много файлов используется при компиляции. Следует попробовать подключить часть файлов с помощью директивы {$1 filename} или уменьшить имена файлов.
19. При определении типа-указателя используется тип, нигде не определенный.
20. В данном месте программы должен быть идентификатор переменной.
21. Неправильно определен тип.
22. Размер данных более 65520 байт.
23. Тип-множество имеет более 256 элементов или содержит элементы с порядковыми номерами не в пределах 0..255.
24. Компонентами файловой переменной не могут быть файлы или объекты.
25. Размер строки не в пределах от 1 до 255.
26. Несовместимые типы в операциях присвоения, в выражениях, у индекса массива, тип фактического параметра при обращении к подпрограмме неэквивалентен типу формального параметра.
27. В типе-диапазоне может использоваться только порядковый тип.
28. В типе-диапазоне нижняя граница больше, чем верхняя.
29. Здесь может использоваться только порядковый тип.
30. Здесь можно использовать только константу целого типа.
31. Здесь можно использовать только константу.
32. Здесь можно использовать только числовую константу (целую или вещественную).
33. Здесь должен быть тип-указатель.
34. Недопустимый тип функции.
35. Здесь должен быть идентификатор метки.
36. Здесь ожидается зарезервированное слово begin.
37. Здесь ожидается зарезервированное слово end.
38. Выражение должно быть целого типа.
39. Выражение должно быть порядкового типа.
40. Выражение должно быть логического типа.
41. В операторе не могут быть операнды такого типа.
42. Ошибка в выражении (например, пропущен знак операции между операндами).
43. Неправильное присвоение значения переменной (например, файловой переменной присваивается значение или функции
присваивается значение вне ее значения).
44. Требуется значение поля записи.
45. Объектный файл больше, чем 64 Кбайт.
46. Не найдена внешняя подпрограмма (возможно, пропущена директива {$L filename}).
47. Файл, по-видимому, не является объектным (с расширением .obj).
48. Кодовый сегмент больше 65520 байт. Следует выделить часть в отдельный модуль.
49. Сегмент данных больше 65520 байт. Часть данных нужно разместить в динамической памяти с помощью указателей.
50. Здесь следует поместить зарезервированное слово do.
51. Неправильное использование директивы PUBLIC в подпрограмме, написанной на ассемблере.
52. Неправильное использование директивы EXTRN в подпрограмме, написанной на ассемблере.
53. В объектном файле больше 256 директив EXTRN.
54. Здесь следует поместить зарезервированное слово of.
55. В модуле пропущен интерфейс (нет зарезервированного слова
interface).
56. Неправильная перемещаемая ссылка в подпрограмме, написанной
на ассемблере.
57. Здесь следует поместить зарезервированное слово then.
58. Здесь следует поместить зарезервированные слова to или downto.
59. Заголовок подпрограммы объявлен с директивой forward, но сама
подпрограмма далее не описана; заголовок подпрограммы объявлен в
интерфейсе модуля, но сама подпрограмма в исполнительной части
модуля не описана.
61. При преобразовании типа величины исходного и
результирующего типа имеют различный размер.
62. Деление на нуль.
63. Эта подпрограмма работы с файлом не поддерживает данный тип
файла.
64. Недопустимый тип параметра у подпрограмм Read, ReadLn, Write
или WriteLn.
65. Эта переменная должна быть типа-указателя.
66. Эта переменная должна быть строкового типа.
67. Это выражение должно быть строкового типа.
68. Циклическая ссылка модулей друг на друга в интерфейсных
частях.
69. Имена модуля и файла, в котором он находится, не совпадают.
70. Один или несколько используемых модулей изменены после их
компиляции.
71. Внутренний стек компилятора переполнен из-за глубокой
вложенности операторов.
72. Ошибка в формате скомпилированного модуля. Возможно, он был
скомпилирован предыдущей версией пакета.
73. Пропущена исполнительная часть модуля не(т
зарезервированного слова implementation).
74. Недопустимое значение константы, используемой в операторе
CASE.
75. Переменная должна быть типа-записи или типа-объекта.
76. Используемая константа имеет недопустимое значение.
77. Эта переменная должна быть файлового типа.
78. Это выражение должно быт типа-указателя.
79. Это выражение должно быть числовым ц(елым или
вещественным).
29
80. Метка не из данного блока.
81. Меткой уже помечен один оператор.
82. Метка объявлена, но ни один оператор ей не помечен.
83. Неправильный аргумент у операции “@”.
84. В модуле пропущено зарезервированное слово unit.
85. Здесь пропущена точка с запятой “;”
86. Здесь пропущено двоеточие “:”
87. Здесь пропущена запятая “,”
88. Здесь пропущена открывающая круглая скобка “(”.
89. Здесь пропущена закрывающая круглая скобка “)”.
90. Здесь пропущен знак равенства “=”
91. Здесь пропущен знак присваивания “:=”
92. Здесь пропущена открывающая квадратная скобка “[” или круглая
скобка с точкой “(”.
93. Здесь пропущена закрывающая квадратная скобка “]” или круглая
скобка с точкой “.)”
94. Здесь пропущена точка .
95. Здесь пропущены две точки ..
96. Размер глобальных переменных программы или локальных
переменных подпрограммы превышает 64 Кбайт.
97. Неправильный параметр цикла FOR.
98. Здесь должна быть переменная целого типа.
99. Типизированная константа не может быть файлового или
процедурного типа.
100. Длина строковой константы не соответствует размеру массива
символов.
101. Порядок следования полей в типизированных константах типа-
записи или типа-объекта должен соответствовать порядку их следования
при объявлении типа.
102. Здесь должна быть строковая константа.
103. Здесь должна быть числовая переменная ц(елого или
вещественного типа).
104. Здесь должна быть переменная порядкового типа.
105. В подпрограмме с директивой inline неправильно использован
указатель размера <.
106. Здесь должно быть выражение символьного типа.
107. Основная часть программы слишком велика. Следует часть ее
выделить в подпрограммы.
108. Переполнение при выполнении арифметической операции с
числами целого типа. Следует скорректировать вычисления или перейти к
вещественным числам.
109. Стандартные процедуры Break или Continue используются вне
циклов FOR, WHILE или REPEAT.
93
110. Превышены допустимые размеры таблицы отладочной
информации (больше 64 Кбайт). Следует часть модулей скомпилировать с
директивой {$D-}.
112. Целая константа в операторе CASE должна быть в пределах от —
32768 до 32767.
113. Ошибка в операторе.
114. Нельзя непосредственно вызвать процедуру прерывания
116. Типы Single, Double, Extended и Comp можно использовать только
при наличии арифметического сопроцессора (программа должна быть
скомпилирована с директивой {$N+}).
117. При использовании команды меню SearchFind error нельзя найти
оператор для заданного адреса.
118. В данном месте нельзя использовать файл, подключаемый
директивой {$I filename}. Оператор должен полностью находиться в
одном файле.
119. Зарезервированное слово inherited использовано не внутри метода
объекта или внутри метода объекта, у которого нет предков.
121. Неправильный квалификатор (попытка задать индекс у параметра,
не являющегося массивом, указание поля, которого нет в записи, попытка
обратиться по адресу к данным, если переменная не является указателем).
122. Неправильная ссылка на переменную (вероятно, взят указатель, а
не величина, на которую он указывает).
123. В программе введено символов больше, чем 64 Кбайт. Следует
попробовать разделить программу на части.
124. Тело программы не может быть более 24 Кбайт. Нужно выделить
одну или несколько подпрограмм.
126. Файловую переменную можно передавать в подпрограмму только
как параметр-переменную.
127. Слишком много символов у параметров условной компиляции.
128. Несоответствие в директивах условной компиляции.
129. Пропущена директива компилятора {$ENDIF}.
130. Параметры для условной компиляции, заданные строкой ввода
OptionsCompilerConditional defines заданы неверно.
131. Полный заголовок подпрограммы не соответствует заголовку,
объявленному с директивой forward, или заголовку в интерфейсной части
модуля.
133. Неправильное константное выражение или выражение,
используемое в окнах отладки
134. Неправильно завершено выражение.
135. Неправильный формат.
136. Неправильная косвенная ссылка.
137. Недопустимая операция над структурированными данными.
138. Файл Turbo.tpl не включает модуль System.
139. Нельзя получить этот символ.
140. Переполнение при операциях с вещественными числами или
деление на нуль.
141. Программа, использующая оверлеи, должна быть скомпилирована
на диск.
142. Здесь должен быть указатель или переменная процедурного типа.
143. Неправильный вызов процедуры или функции.
144. Попытка использовать модуль в оверлейной программе, который
не скомпилирован с директивой {$0+}.
146. Неправильное обращение к файлу (например, запись в файл,
применяемый только для чтения, используется имя каталога, а не файла).
147. Здесь должна быть переменная типа-объекта.
148. Нельзя определять переменную типа-объекта в подпрограмме.
149. Этот метод должен быть виртуальным п(ропущено
зарезервированное слово virtual).
150. Здесь должен быть идентификатор метода.
151. Конструктор не может быть виртуальным.
152. Здесь должен быть идентификатор конструктора.
153. Здесь должен быть идентификатор деструктора.
154. Процедура Fail вызвана не из конструктора, что недопустимо.
155. Неправильный набор операндов у команды ассемблера.
156. В команде ассемблера должна быть ссылка на память.
157. Нельзя складывать или вычитать перемещаемые операнды в
ассемблере.
158. Неправильная комбинация регистров.
159. Нельзя использовать команды для компьютеров 80286/80287.
160. Этот параметр нельзя использовать как операнд в команде
ассемблера.
162. Здесь должно быть зарезервированное слово asm.
Сообщения об ошибках времени выполнения
1. Вызов несуществующей функции DOS.
2. Файл не найден.
3. Не найден каталог.
4. Нельзя открыть столько файлов. Число открываемых файлов
определяется в CONFIG.SYS.
5. Неправильное обращение к файлу.
6. Неправильный описатель файла.
12. Неправильный режим доступа к файлу
15. Неправильный номер накопителя.
16. Нельзя удалить текущий каталог.
17. Нельзя переименовать файл, изменив номер накопителя.
18. Процедуры FindFirst или FindNext не нашли файла.
100. Попытка чтения из файла после достижения его конца (для
типизированных файлов).
101. Ошибка при записи на диск, если он заполнен.
102. Попытка работать с файлом, для которого не выполнена
процедура Assign.
103. Файл не открыт.
104. Файл не открыт для чтения (для текстовых файлов).
105. Файл не открыт для записи (для текстовых файлов).
106. Недопустимый формат целого числа.
150. Попытка записать на диск, защищенный от записи.
151. Ошибка, формируемая драйвером.
152. Внешнее устройство не готово.
154. MS D OS о пределила ошибку в записанных на внешнее устройство
данных.
156. Ошибка, формируемая MS DOS при поиске данных на диске.
157. MS D OS н е может распознать тип диска.
158. Ошибка, формируемая MS DOS при поиске данных на диске.
159. В принтере отсутствует бумага.
160. Ошибка на диске при записи.
161. Ошибка на диске при чтении.
162. Ошибка устройства ввода-вывода.
200. Деление числа на нуль.
201. Ошибка при контроле допустимости значения.
202. Переполнение стека.
203. Переполнение динамической памяти.
204. Применение процедур Dispose или FreeMem к незаданному
указателю.
205. Переполнение вещественного числа.
206. Потеря значимости вещественного числа.
207. Неправильная операция с вещественным числом.
208. Диспетчер оверлеев не инициализирован н(е выполнена
стандартная процедура OvrInit)
209. Ошибка при чтении оверлейного файла.
210. Объект не инициализирован.
211. Вызван абстрактный метод.
215. Переполнение при арифметической операции.
216. Неправильная попытка записать информацию в память.

У вас нет прав для отправки комментариев.
Войдите под своим логином.

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Паскаль ошибка 215
  • Паскаль ошибка 113
  • Пасито 2 ошибка check atomizer
  • Парцелляция какая ошибка
  • Парцелляция вид ошибки

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии