Ошибка 102 паскаль

Kaji

0 / 0 / 1

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

Сообщений: 33

1

27.12.2010, 00:54. Показов 3856. Ответов 13

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Здравствуйте.
Итак, кусок кода:

Pascal
1
2
3
BEGIN {glav prog}
assign(input, 'spis.txt');
reset(input);

курсор стоит на reset и выдает Error 102: File not assigned . Почему? Я же его строчкой выше ассигню? Сам файл лежит в директории BIN, проверял. Если нужно, могу привести весь код.



0



1 / 1 / 0

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

Сообщений: 55

27.12.2010, 00:59

2

На сколько я знаю, нужно не reset, а rewrite, а уже потом для дозаписи reset.



0



0 / 0 / 1

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

Сообщений: 33

27.12.2010, 01:03

 [ТС]

3

файл нужен только для чтения, вывод на экран, поэтому reset



0



98 / 98 / 29

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

Сообщений: 220

27.12.2010, 01:03

4

давай код



0



1 / 1 / 0

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

Сообщений: 55

27.12.2010, 01:06

5

Тогда может проблема в указание пути?

assign (input, ‘spis.txt’);

Если паскаль не пропатченный, то нужно полностью указывать путь.



0



98 / 98 / 29

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

Сообщений: 220

27.12.2010, 01:09

6

Посмотри File->ChangeDir там папка Bin выбрана?



0



Kaji

0 / 0 / 1

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

Сообщений: 33

27.12.2010, 01:21

 [ТС]

7

выбрана.

вот полный код:

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
program spisok;
 
TYPE inf= string[15];
     ukazatel=^zapis;
     zapis=record
          data:inf;
          next:ukazatel
          end;
 
VAR  head, prom: ukazatel;
     A:    inf;
 
procedure sozdanieSpiska(var head: ukazatel; A: inf);
 
var prom: ukazatel;
 
begin
new(head); {perviy element pustoi}
prom:= head;
while not eof do
  begin
  readLn(A);
  new(prom^.next);
  prom:= prom^.next;
  prom^.data:= A;
  prom^.next:= nil;
  end;
end; {of sozdanie spiska}
 
procedure sortSpiska(var head: ukazatel);
 
var key,keypred,zappred,zappredpred: ukazatel;
 
begin
zappred:=head^.next;
zappredpred:=head;
key:=head^.next^.next;
keypred:=head^.next;
while key^.next <> nil do
  begin
  repeat
    prom:= key;
    if key^.data < zappred^.data then
    begin
    zappredpred^.next:= key;
    keypred^.next:= key^.next;
    key^.next:= zappred;
    break;
    end
                               else
    begin
    zappred:= zappred^.next;
    zappredpred:= zappredpred^.next;
    end;
  until zappred= key;
  zappred:= head^.next;
  zappredpred:= head;
  key:= prom^.next;
  keypred:= prom;
  end; {of while}
end; {of sortSpiska}
 
procedure vivodSpiska(var head: ukazatel);
 
begin
while head <> nil do
  begin
  writeLn(head^.data,' ');
  head:= head^.next;
  end; {of while}
writeLn('-----');
end; {of vivodSpiska}
 
 
BEGIN {glav prog}
assign(input, 'spis.txt');
reset(input);
 
sozdanieSpiska(head, A);
vivodSpiska(head);
sortSpiska(head);
 
while head <> nil do {udalenie spiska}
  begin
  prom:= head^.next;
  dispose (head);
  head:=prom;
  end;
end.



0



Merlin666

98 / 98 / 29

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

Сообщений: 220

27.12.2010, 01:52

8

объяви

Pascal
1
input: text;

и в конце еще

Pascal
1
close(input);



0



0 / 0 / 1

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

Сообщений: 33

27.12.2010, 04:04

 [ТС]

9

на input: text даёт Error 43: Illegal assignment



0



use

180 / 180 / 81

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

Сообщений: 346

27.12.2010, 05:21

10

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

на input: text даёт Error 43: Illegal assignment

Не надо использовать зарезервированные слова. Идентификаторы input и outut жестко закреплены за консолью. В принципе, перенаправление их возможно, но не рекомендую с ним связываться. Если тебе просто нужно читать/обрабатывать обычный файл на диске, то лучше просто выбери для него другой идентификатор (типа f) и опиши в разделе переменных:

Pascal
1
2
var
  f: text;

— и assign или открывай/закрывай его, когда хочешь.



0



Kaji

0 / 0 / 1

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

Сообщений: 33

27.12.2010, 20:09

 [ТС]

11

попробовал так:

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
program spisok;
 
TYPE inf= string[15];
     ukazatel=^zapis;
     zapis=record
          data:inf;
          next:ukazatel
          end;
 
VAR  head, prom: ukazatel;
     A:    inf;
     f: text;
 
procedure sozdanieSpiska(var head: ukazatel; A: inf);
 
var prom: ukazatel;
 
begin
new(head); {perviy element pustoi}
prom:= head;
while not eof do
  begin
  readLn(f, A);
  new(prom^.next);
  prom:= prom^.next;
  prom^.data:= A;
  prom^.next:= nil;
  end;
end; {of sozdanie spiska}
 
procedure sortSpiska(var head: ukazatel);
 
{kod bez izmenenii}
 
procedure vivodSpiska(var head: ukazatel);
 
 
{kod bez izmenenii}
 
 
BEGIN {glav prog}
 
assign(f, 'spis.txt');
reset(f);
 
 
sozdanieSpiska(head, A);
vivodSpiska(head);
sortSpiska(head);
 
while head <> nil do {udalenie spiska}
  begin
  prom:= head^.next;
  dispose (head);
  head:=prom;
  end;
close(f);
end.

ошибка сохранилась.



0



use

180 / 180 / 81

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

Сообщений: 346

28.12.2010, 03:51

12

Сударь, твоя программа вообще не компилируется. Какой может быть разговор об ошибках выполнения? Беглый просмотр наводит на мысль, что это вообще и не рабочий код, а муляж (с выкинутыми процедурами). Ну хорошо, я вставил заглушки и положил в директорию куклу spis.txt — все «работает». В том смысле, что открытие файла проходит нормально, а дальше идут ошибки (потому в кавычках). Теперь скажи — что ты имел в виду под «ошибка сохранилась»?
Почему нельзя писать (если уж спрашиваешь) чуть подробнее и приводить реальный текущий вариант кода? Тебе в лом? Зачем ты заставбяешь тех, кто тебепомогает, проделывать всю эту работу?

Короче, вот этот код полностью компилируется, открывает файл spis.txt (в той же дир) и потом вылетает по ошибке с пойнтерами (проверялось в BP7 и FP).

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
program spisok;
 
TYPE inf= string[15];
     ukazatel=^zapis;
     zapis=record
          data:inf;
          next:ukazatel
          end;
 
VAR  head, prom: ukazatel;
     A:    inf;
     f: text;
 
procedure sozdanieSpiska(var head: ukazatel; A: inf);
var
  prom: ukazatel;
begin
  new(head); {perviy element pustoi}
  prom:= head;
  while not eof do begin
    readLn(f, A);
    new(prom^.next);
    prom:= prom^.next;
    prom^.data:= A;
    prom^.next:= nil;
  end;
end; {of sozdanie spiska}
 
procedure sortSpiska(var head: ukazatel);
{kod bez izmenenii}
begin end;
 
procedure vivodSpiska(var head: ukazatel);
{kod bez izmenenii}
begin end;
 
BEGIN {glav prog}
  assign(f, 'spis.txt');
  reset(f);
  sozdanieSpiska(head, A);
  vivodSpiska(head);
  sortSpiska(head);
 
  while head <> nil do begin {udalenie spiska}
    prom:= head^.next;
    dispose (head);
    head:=prom;
  end;
  close(f);
end.



0



0 / 0 / 1

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

Сообщений: 33

28.12.2010, 22:46

 [ТС]

13

>Сударь, твоя программа вообще не компилируется.

У меня компилируется. Использую TP7.

>В том смысле, что открытие файла проходит нормально, а дальше идут ошибки (потому в кавычках).

Вот файл у меня и не открывается.

>Теперь скажи — что ты имел в виду под «ошибка сохранилась»?

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

>Почему нельзя писать (если уж спрашиваешь) чуть подробнее и приводить реальный текущий вариант кода? Тебе в лом?

Он приведён в посте #7 этой темы. Тебе влом читать сначала темы?



0



180 / 180 / 81

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

Сообщений: 346

29.12.2010, 02:28

14

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

>Сударь, твоя программа вообще не компилируется.

У меня компилируется. Использую TP7.

Я даю правую руку на отсечение и тыщу долларов впридачу, если у тебя скомпилируется код из твоего сообщения #11 (только КАК ОН ЕСТЬ в сообщении, БЕЗ ИЗМЕНЕНИЙ!)

>Почему нельзя писать (если уж спрашиваешь) чуть подробнее и приводить реальный текущий вариант кода? [bold мой — use] Тебе в лом?

Он приведён в посте #7 этой темы. Тебе влом читать сначала темы?

В посте #7 приведен код с INPUT. Если твой реальный текущий вариант кода содержит INPUT, то читай, плз, мой пост #10.

Когда поостынешь, запусти код из сообщения #12 (не из цитаты, а из конца сообщения) и скажи, «сохранилась ли ошибка» на этот раз.
Успехов тебе, грубиян.



0



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).

201      : range error

215      : overflow checking when doing computation with integer

202      : overflow stack

106      : invalid numeric format

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

15        : invalid drive number

16        : cannot remove current directory

17        : cannot rename across

18        : no more files

100      : disk read error

101      : disk write error

102      : file not assigned

103      : file not open

104      : file not open for input

105      : file not open for output

150      : disk is write protected

151      : bad drive request structure 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      : div by zero

203      : heap overflow

204      : invalid pointer operation

205      : floating point overflow

206      : floating point underflow

207      : invalid floating point operation

208      : overlay manager not installed

209      : overlay file read error

210      : object not initialized

211      : call to abstract method

212      : stream registration error

213      : collection index out of range

214      : collection overflow error

216      : general protection fault

217      : invalid operation code

227      : assertion failed

300      : file IO error

301      : non-matched array bounds

302      : non-local procedure pointer

303      : procedure pointer out of scope

304      : function not implemented

305      : breakpoint error

306      : break by ctrl/c

307      : break by ctrl/break

308      : break by other process

309      : no floating point coprocessor

310      : invalid variant type operation

Приложения написанные на 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тановлена.


Коды ошибок компилятора Паскаля

При отладке программ вы неизбежно столкнетесь с ошибками. Компилятор будет вам на чистом английском языке сообщать об ошибке. Вы не знаете английского? Тогда зачем согласились стать программистом? Если вы скажете что вас заставили, то мы попытаемся вам помочь. Здесь вы найдете коды ошибок и их перевод на русский язык. Кстати, помните, что компилятор часто врет и место ошибки указывает не правильно. Если в той строке, где компилятор якобы нашел ошибку, ошибки все-таки нет, то ишщите ее в соседних строках или в том блоке программы, к которому имеет отношение, отмеченная компилятором строка. Например, в вызываемой процедуре. Ну, дальше вы сами уже сможете сообразить.

Основные сообщения об ошибках Паскаля

Сообщения компилятора о синтаксических ошибках:

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 — нужен begin;
37 — нужен end;
38 — нужно выражение типа integer;
39 — нужно выражение перечисляемого типа;
40 — нужно выражение типа boolean;
41 — типы операндов не соответствуют оператору;
42 — ошибка в выражении;
43 — неверное присваивание;
44 — нужен идентификатор поля;
45 — объектный файл слишком большой (больше 64 Кб);
46 — неопределенная внешняя процедура;
47 — неправильная запись объектного файла;
48 — сегмент кода слишком большой (больше 65520 байт);
49 — сегмент данный слишком велик;
50 — нужен оператор do;
51 — неверное определение public;
52 — неправильное определение extrn;
53 — слишком много определений типа extrn (больше 256);
54 — требуется of;
55 — требуется интерфейсная секция;
56 — недействительная перемещаемая ссылка;
57 — требуется then;
58 — требуется to или downto;
59 — неопределенное опережающее описание;
60 — слишком много процедур (больше 512 в одном модуле);
61 — неверное преобразование типа;
62 — деление на нуль;
63 — неверный файловый тип;
64 – невозможно прочитать или записать переменные данного типа;
65 – требуется использование переменной-указателя;
66 — нужна строковая переменная;
67 — нужно выражение строкового типа;
68 — программный модуль не найден;
69 — несоответствие времен программных модулей;
70 — несоответствие версий программных модулей;
71 — повторное имя программного модуля;
72 — ошибка формата файла программного модуля;
73 — требуется секция реализации;
74 — типы константы и тип выражения оператора case не соответствуют друг другу;
75 — нужна переменная типа запись;
76 — константа нарушает границы;
77 — нужна файловая переменная;
78 — нужно выражение типа указатель;
79 — нужно выражение типа real или integer;
80 — метка не находится внутри текущего блока;
81 — метка уже определена;
82 — неопределенная метка в предыдущем разделе операторов;
83 — недействительный аргумент оператора @;
84 — требуется ключевое слово unit;
85 — требуется указать «;»;
86 — требуется указать «:»;
87 — требуется указать «,»;
88 — требуется указать «(«;
89 — требуется указать «)»;
90 — требуется указать «=»;
91 — требуется указать «:=»;
92 — требуется «[» или «(.»;
93 — требуется «]» или «.)»;
94 — требуется «.»;
95 — требуется «..»;
96 — слишком много переменных;
97 — неправильная переменная цикла оператора for. Переменная должна быть перечислимого типа;
98 — нужна переменная целого типа;
99 — здесь не допускаются файлы;
100 — несоответствие длины строковой переменной или константы;
101 — неверный порядок полей;
102 — нужна константа строкового типа;
103 — нужна переменная типа integer или real;
104 — нужна переменная перечисляемого типа;
105 — ошибка в операторе inline;
106 — предшествующее выражение должно иметь символьный тип;
107 — слишком много перемещаемых элементов;
108 — недостаточно памяти для выполнения программы;
109 — нет возможности найти файл .EXE;
110 — модуль выполнять нельзя;
111 — компиляция прервана с помощью клавиш Ctrl+Break;
112 — константа оператора case находится вне границ;
113 — ошибка в операторе. Данный символ не может быть первым символом в операторе;
114 — невозможно вызвать процедуру прерывания;
115 — для компиляции необходимо наличие сопроцессора 8087;
116 — для компиляции необходим режим 8087;
117 — адрес назначения не найден;
118 — в такой ситуации включаемые файлы не допускаются;
119 — ошибка формата файла .TPU;
120 — требуется NIL;
121 — неверный квалификатор переменной;
122 — недействительная ссылка на переменную;
123 — слишком много символов (больше 64 Кб);
124 — слишком большой раздел операторов (больше 64 Кб);
125 — в модуле нет отладочной информации;
126 — параметры файлового типа должны быть параметрами var;
127 — слишком много условных символов;
128 — пропущена условная директива;
129 — пропущена директива endif;
130 — ошибка в начальных условных определениях;
131 — заголовок не соответствует предыдущему определению;
132 — критическая ошибка диска;
133 — нельзя вычислить данное выражение;
134 — некорректное завершение выражения;
135 — неверный спецификатор формата;
136 — недопустимая косвенная ссылка;
137 — здесь не допускается использование структурной переменной;
138 — нельзя вычислить без блока system;
139 — доступ к данному символу отсутствует;
140 — недопустимая операция с плавающей запятой;
141 — нельзя выполнить компиляцию оверлеев в память;
142 — должна использоваться переменная-процедура или функция;
143 — недопустимая ссылка на процедуру или функцию;
144 — этот модуль не может использоваться в качестве оверлейного.

Сообщения об ошибках времени исполнения программы:

1 — не найден файл;
3 — не найден путь;
4 — слишком много открытых файлов;
5 — отказано в доступе к файлу;
6 — недоступный файловый канал;
12 — недействительный код доступа к файлам;
15 — недопустимый номер дисководов;
16 — нельзя удалить текущий каталог;
17 — нельзя при именовании указывать разные дисководы;
100 — ошибка чтения диска;
101 — ошибка записи на диск;
102 — файлу не присвоено имя;
103 — файл не открыт;
104 — файл не открыт для ввода;
105 — файл не открыт для вывода;
106 — неверный числовой формат;
150 — диск защищен от записи;
151 — неизвестный модуль;
152 — дисковод находится в состоянии «не готов»;
153 — неопознанная команда;
154 — в исходных данных;
155 — при запросе к диску неверная длина структуры;
156 — ошибка при операции установки головок на диске;
157 — неизвестный тип носителя;
158 — сектор не найден;
159 — кончилась бумага на устройстве печати;
160 — ошибка при записи на устройство;
161 — ошибка при чтении с устройства;
162 — сбой аппаратуры;
200 — деление на нуль;
201 — ошибка при проверке границ;
202 — переполнение стека;
203 — переполнение динамически распределяемой области памяти;
204 — недействительная операция ссылки;
205 — переполнение операции с плавающей запятой;
206 — исчезновение порядка при операции плавающей запятой;
207 — недопустимая операция с плавающей запятой;
208 — не установлена подсистема управления оверлеями;
209 — ошибка чтения оверлейного файла.

Понравилась статья? Поделить с друзьями:
  • Ошибка 102028 samsung телевизор
  • Ошибка 102 ниссан патфайндер
  • Ошибка 102009 hik connect
  • Ошибка 102 на терминале
  • Ошибка 102002 bmw f30