Free pascal ошибка при компиляции

modjo

1 / 1 / 0

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

Сообщений: 43

1

Ошибка при компиляции

03.07.2009, 11:26. Показов 11800. Ответов 13

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


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

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

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
USES Graph;
VAR Device,Mode:Integer;
 
BEGIN
  WriteLn('text mod');
  ReadLn;
  Device:=0;
  InitGraph(Device,Mode,'');
  Circle(100,80,50);
  ReadLn;
  CloseGraph;
  WriteLn('text mod');
  ReadLn;
END.

>fpc «F:backupcodingpascalsrc_binglava9graph.pas»
Free Pascal Compiler version 2.2.4 [2009/04/10] for i386
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: Win32 for i386
Compiling F:backupcodingpascalsrc_binglava9graph.pas
Compiling graph.pas
graph.pas(1,1) Fatal: Syntax error, «UNIT» expected but «USES» found
Fatal: Compilation aborted
Error: C:FPCbini386-Win32ppc386.exe returned an error exitcode (normal if you did not specify a source file to be compiled)
>Exit code: 1 Time: 0.833

Сама программа содрана с книги.



0



Programming

Эксперт

94731 / 64177 / 26122

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

Сообщений: 116,782

03.07.2009, 11:26

13

55 / 53 / 24

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

Сообщений: 216

03.07.2009, 11:44

2

чтоб не было ошибки при компиляции

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



0



1 / 1 / 0

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

Сообщений: 43

03.07.2009, 11:58

 [ТС]

3

Что за бред! А компилятор какой? fpc или tb? Может тогда скинете архивчик? Просто я даже не знаю куда копать…



0



149 / 139 / 57

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

Сообщений: 310

03.07.2009, 12:02

4

У меня тоже все работает на Free Pascal.



0



55 / 53 / 24

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

Сообщений: 216

03.07.2009, 12:05

5

Эт не бред! У меня FreePascal 2.2.4 Боюсь, что архивчик здесь не поместится..



0



55 / 53 / 24

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

Сообщений: 216

03.07.2009, 12:24

7

Переименуйте имя программы. Конфликт возникает из-за того что у Вас программа называется также как и драйвер graph!



0



1 / 1 / 0

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

Сообщений: 43

03.07.2009, 12:42

 [ТС]

8

Да, похоже с этим были проблемы. Теперь немного другая.

http://smages.com/t/10/b6/10b6… e251da.jpg

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



0



S2dent

55 / 53 / 24

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

Сообщений: 216

03.07.2009, 12:50

9

Честно говоря из вашего скриншота тяжело что-то разглядеть.. Попробуйте прописать путь к драйверу в программе:

Pascal
1
InitGraph(Device,Mode,'D:FPC'); {но это путь к моему драйверу, в этой строчке напишите где у Вас находится драйвер}



0



1 / 1 / 0

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

Сообщений: 43

03.07.2009, 13:06

 [ТС]

10

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



0



55 / 53 / 24

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

Сообщений: 216

03.07.2009, 13:17

11

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

Все верно, у меня эта программа запускается и без пути к модулю graph. Не уверен, но по-моему для этого программа и модуль graph должны находиться в одной дирректории А в конечной дирректории должен присутствовать сам файл graph.tpu



0



1 / 1 / 0

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

Сообщений: 43

03.07.2009, 13:32

 [ТС]

12

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

Я взял обычный турбо паскаль и собрал программу (!) (там, кстати, файлы tpu действительно лежат рядом с turbo.exe). Но при работе программы выскакивает вот это:

C:>12
Это текстовый режим.

BGI Error: Graphics not initialized (use InitGraph)

Не понятно, я же использую InitGraph. Что ему опять не так… В общем: шаг — грабли, шаг — грабли… Пол книги прочем без граблей

ЗЫ
Ведь tpu модулей нет в fpc….



0



55 / 53 / 24

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

Сообщений: 216

03.07.2009, 13:41

13

Тоже запустил прогу в BP и тоже ошибка.. Сменил дирректорию на BGI и все заработало..



1



1 / 1 / 0

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

Сообщений: 43

03.07.2009, 13:54

 [ТС]

14

ВО! От обычного турбо паскаля работает если запускать в папке BGI… Почему не работает в fpc не понятно. Может тож надо где-то запускать?



0



IT_Exp

Эксперт

87844 / 49110 / 22898

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

Сообщений: 92,604

03.07.2009, 13:54

14

Странная ошибка при компиляции

Модератор: Модераторы

Странная ошибка при компиляции

Приветствую уважаемых коллег.

Разрабатываю большой проект на Лазаре. При компиляции в Linux у меня возникает такая бага:

Materials_oper.lpr(40,1) Error: Error while compiling resources. Compile with -vd for more details. Check for duplicates.

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

Прошу подсказать, где копать.

Добавлено спустя 1 минуту 52 секунды:
Да, забыл. Lazarus 1.2.6, FPC 2.6.4, SVN: Unversioned directory, i386-linux-gtk2.

slyubez
постоялец
 
Сообщения: 149
Зарегистрирован: 31.03.2015 08:44:07

Re: Странная ошибка при компиляции

Сообщение wavebvg » 20.04.2015 15:38:30

Удалите папку с собранными объектниками (обычно lib)
Проверьте имена файлов
Если что-то переименовывали, то, возможно, накосячили с регистрами и теперь Вам очень нужно найти косяк и исправить его.

wavebvg
постоялец
 
Сообщения: 349
Зарегистрирован: 28.02.2008 04:57:35

Re: Странная ошибка при компиляции

Сообщение slyubez » 20.04.2015 16:24:34

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

Добавлено спустя 3 часа 38 минут 59 секунд:
Не помогло, все чисто.

Похоже, я не один такой, и проблема не решается.

http://forum.lazarus.freepascal.org/ind … ic=21782.0

slyubez
постоялец
 
Сообщения: 149
Зарегистрирован: 31.03.2015 08:44:07

Re: Странная ошибка при компиляции

Сообщение Ism » 20.04.2015 20:50:34

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

Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Странная ошибка при компиляции

Сообщение slyubez » 20.04.2015 20:58:27

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

Как бы его получить…
Пробовал запустить Лазаря под sudo из консоли. В процессе компиляции вышло много инфы (даже больше, чем в окно сообщений), но и там ничего особенного.

Добавлено спустя 1 минуту 24 секунды:

Materials_oper.lpr(40,1) Error: Error while compiling resources
Materials_oper.lpr(40,1) Fatal: There were 1 errors compiling module, stopping
TMessagesView.CollectLineParts WARNING: 138<>136 SrcLine=Materials_oper.lpr(40,1) Fatal: There were 1 errors compiling module, stopping
TLazSourceFileManager.OpenEditorFile Fixing file name: /home/slyubez/svn/MatOper/ -> /home/slyubez/svn/MatOper
TLazSourceFileManager.OpenEditorFile skipping directory /home/slyubez/svn/MatOper
TMainIDE.DoBuildProject Compile failed
TSourceEditorSharedValues.GetMainLinkScanner not a pascal source: /home/slyubez/svn/MatOper/Materials_oper.lpi

Добавлено спустя 39 минут 34 секунды:
Сделал тест параметров компилятора и наткнулся на такую вещь (см. вложение). Теперь думаю, что делать дальше.

Добавлено спустя 25 минут 36 секунд:
Попробовал переместить файлы dialogs.ppu, dialogs.o, menus.ppu и menus.o из библиотек fpc во временный каталог. Делаю пересборку — бесполезно, ошибка та же самая.

Добавлено спустя 46 минут 10 секунд:
Такие же предупреждения есть и в виндовой версии Лазаря, но там они не мешают компиляции. После перемещения файлов в Линухе предупреждения исчезли, но проблема никуда не делась.

У вас нет необходимых прав для просмотра вложений в этом сообщении.

slyubez
постоялец
 
Сообщения: 149
Зарегистрирован: 31.03.2015 08:44:07

Re: Странная ошибка при компиляции

Сообщение Ism » 20.04.2015 22:56:56

1 Попробуйте установить Лазерус начистую, дубли могут быть следствием экспериментов со сборкой. Или перекомпиликовать Лазарус с полной очисткой

2 Удалите дубли в одной из директорий

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

Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Странная ошибка при компиляции

Сообщение slyubez » 20.04.2015 23:02:09

Тут надо переставлять и Лазаря, и FPC с предварительным сносом подчистую вместе со всеми настройками и прочим мусором. Я уже пробовал переставлять Lazarus без FPC, снеся впридачу каталог настройки — не помогло.

slyubez
постоялец
 
Сообщения: 149
Зарегистрирован: 31.03.2015 08:44:07

Re: Странная ошибка при компиляции

Сообщение Vadim » 21.04.2015 03:48:47

slyubez
А Вы не делали то, что советует Вам сам компилятор?

slyubez писал(а):Compile with -vd for more details.

Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Странная ошибка при компиляции

Сообщение slyubez » 21.04.2015 09:39:46

Честно, я пока не настолько спец по Лазарусу и не смог разобраться, где в среде подставить этот ключ компилятора. Я попробовал скопировать параметры из списка и скормить их файлу /usr/bin/fpc, добавив туда путь и имя lpr-файла проекта и опцию -vd. При запуске компилятор проверил опции и далее на первом же файле после lpr, выдав ряд хинтов и warning, выругался — can’t create object file 123.o без указания конкретной причины. Пробовал то же под sudo — не помогает.

Добавлено спустя 32 минуты 1 секунду:
UPD.
Блин, фантастика какая-то. Выяснил, что объектный файл не создается, так как я потер каталог lib. Создаю его и подкаталоги, повторяю компиляцию. Появляется ошибка о ненахождении ресурсного файла проекта — его я тоже вытер. Открываю IDE — ошибка в лексеме lfm-файла основной формы. Закрываю среду. Открываю RapidSVN, вижу ряд конфликтов и изменений. Отменяю изменения по всем файлам. Открываю среду и проект в ней, компилирую — ошибки уже нет, успешная компиляция. Что, откуда, как, почему — непонятно.

slyubez
постоялец
 
Сообщения: 149
Зарегистрирован: 31.03.2015 08:44:07

Re: Странная ошибка при компиляции

Сообщение Vadim » 21.04.2015 11:25:24

Параметры компиляции в Lazarus можно задавать через меню:
Проект -> Параметры проекта -> Параметры компилятора

В пункте «Подробность вывода» есть есть галочка специально для Вас: показывать отладочную информацию (-vd).

Посмотрите все опции, есть интересные, например для уменьшения размера откомпилированной программы (-XX).
——————————————-
Вы когда поставили себе Lazarus с FPC, SVN-ом постарайтесь не сильно злоупотреблять. Дело в том, что новые выкладки для Lazarus выходят каждую ночь и не все эти выкладки нормально действуют на IDE. Лучше всего переходить на новую версию только тогда, когда там появляется такая то фича, которая Вам крайне необходима или исправлена та ошибка, которая Вам раньше нормально жить не давала. ;-)

Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Странная ошибка при компиляции

Сообщение slyubez » 21.04.2015 11:34:45

Дело в том, что новые выкладки для Lazarus выходят каждую ночь и не все эти выкладки нормально действуют на IDE.

SVN я использую только для своего проекта, и изменения были именно в его репозитории. Версии Lazarus и FPC у меня стабильные, и я не беру их обновления с SVN-репозитория Lazarus. У меня три машины с разными ОС, на которых я веду разработку, и все они цепляются к этому репозиторию через либо TortoiseSVN (Windows), либо через RapidSVN (Linux). Возможно, какой-то из клиентов глюкнул при закоммичивании изменений.
А за инфу по размещению ключей спасибо, буду знать.

slyubez
постоялец
 
Сообщения: 149
Зарегистрирован: 31.03.2015 08:44:07

Re: Странная ошибка при компиляции

Сообщение pupsik » 22.04.2015 19:43:38

Пробовал запустить Лазаря под sudo из консоли

А вы все через судо делаете? :shock:

Error while compiling resources

— ругня на {$R *.res} файл.

Делаю пересборку — бесполезно, ошибка та же самая.

Т.е. лазарь у вас без проблем собирается, а ваш проект с багом?

п.с.
Попробовал я «проблемный проект» по вашей ссылке… У меня он запустился без малейшей проблемы. Подскажите: как можно так сломать лазарь? :)

Vadim

Лучше всего переходить на новую версию только тогда, когда там появляется такая то фича

И как узнать когда эта фича появляется? Бубен в руки что ли :)

pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
  • Профиль
  • Сайт

Re: Странная ошибка при компиляции

Сообщение slyubez » 22.04.2015 21:11:12

А вы все через судо делаете?

Если надо пересобрать компоненты или подправить их код — приходится так делать.

Попробовал я «проблемный проект» по вашей ссылке…

Это по какой еще ссылке? Тынц на пост со ссылкой — в студию.
А вообще проблема уже решена.

slyubez
постоялец
 
Сообщения: 149
Зарегистрирован: 31.03.2015 08:44:07

Re: Странная ошибка при компиляции

Сообщение pupsik » 22.04.2015 22:35:03

Похоже, я не один такой, и проблема не решается.

сперва пишут, а потом забывают… Это ваш ТЫНЦ. Сорцы по ссылке лежат (возможно вы не зарегились на форуме, вот и не увидели :) Или это не вы были :lol:

п.с.
А вы слышали о правах на папку? sudo как и su чутку «карму» портит :)

Кстати: я ведь не писал что это ВАШ проект… :roll:

pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
  • Профиль
  • Сайт

Re: Странная ошибка при компиляции

Сообщение slyubez » 23.04.2015 17:35:10

сперва пишут, а потом забывают… Это ваш ТЫНЦ.

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

А вы слышали о правах на папку? sudo как и su чутку «карму» портит

Прекрасно знаю. Вот я и подумал, что Лазарь пытался что-то пересобрать из компонентов, сорцы которых простой юзер может только читать, но не корректировать (и даже не всегда — компилировать и собирать). Вчера вот вносил правку в сорцы LazReport на линуксовой машине с Mint — их ведь без sudo не отредактируешь (исключение — работа под рутом в тех версиях пингвина, которые разрешают такие вещи).

slyubez
постоялец
 
Сообщения: 149
Зарегистрирован: 31.03.2015 08:44:07


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 43

I am using Free Pascal 2.6.4 32-bit on Windows 8.1. I want to use a TFileStream to copy a file.

program copy;

procedure CopyFile (strFilename : string);
var
   SourceF, DestF :  TFileStream;
begin
end;
begin
   writeln('starting ');

end.

The compiler is not recognizing the TFileStream:

fpc copy_small.pas
Free Pascal Compiler version 2.6.4 [2014/03/06] for i386
Copyright (c) 1993-2014 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling copy_small.pas
copy_small.pas(5,33) Error: Identifier not found "TFileStream"
copy_small.pas(5,33) Error: Error in type definition
copy_small.pas(12) Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted
Error: C:FPC2.6.4bini386-Win32ppc386.exe returned an error exitcode (normal if you did not specify a source file to be compiled)

The sample code I found on the web using TFileStream did not have a «uses» clause. Is there something that needs to be set on the command line or included in the program in order to use a TFileStream with Free Pascal?

asked Sep 21, 2014 at 0:53

Scooter's user avatar

7

TFileStream lives in the Classes unit, so your code should be

program copy;

// To use any 'non-system' functionality add necessary units here
uses
  Classes;

procedure CopyFile (strFilename : string);
var
   SourceF, DestF :  TFileStream;
begin
end;
begin
   writeln('starting ');

end.

answered Sep 21, 2014 at 6:23

Abelisto's user avatar

AbelistoAbelisto

14.7k2 gold badges32 silver badges41 bronze badges

// Распознавание программы на простом языке. Распознаватель лексем (лексер)
{ 
  Лексемы:
  ;  :=  +=  -=  *=  id  num  begin  end  cycle
 
  Ключевые слова:
  begin  end  cycle
}
unit leksanalyz;
 
interface
 
// TLex - перечислимый тип - все лексемы грамматики
// lexEot - конец текста программы
type 
  Tok = (EOF, ID, INUM, COLON, SEMICOLON, ASSIGN, &BEGIN, &END, CYCLE);
 
var 
  fname: string;           // Имя файла программы
  LexRow,LexCol: integer;  // Строка-столбец начала лексемы. Конец лексемы = LexCol+Length(LexText)
  LexKind: Tok;            // Тип лексемы   
  LexText: string;         // Текст лексемы
  LexValue: integer;       // Целое значение, связанное с лексемой lexNum
 
procedure NextLexem;
procedure Init(fn: string);
procedure Done;
function TokToString(t: Tok): string;
 
implementation
 
var 
  ch: Char;         // Текущий символ
  f: text;          // Текущий файл
  row,col: integer; // Текущие строка и столбец в файле
  KeywordsMap := new Dictionary<string,Tok>; // Словарь, сопоставляющий ключевым словам константы типа TLex. Инициализируется процедурой InitKeywords
 
 
procedure LexError(message: string); // ошибка лексического анализатора
begin
  var ss := System.IO.File.ReadLines(fname).Skip(row-1).First(); // Строка row файла
  writeln('Лексическая ошибка в строке ',row,':');
  writeln(ss);
  writeln('^':col-1);
  if message<>'' then 
    writeln(message);
  Done;
  halt;
end;
 
procedure NextCh;
begin
  // В LexText накапливается предыдущий символ и считывается следующий символ
  LexText += ch;
  if not f.Eof then
  begin
    read(f,ch);
    if ch<>#10 then
      col += 1
    else
    begin
      row += 1;
      col := 1;
    end;
  end
  else 
  begin
    ch := #0; // если достигнут конец файла, то возвращается #0
    Done;
  end;
end; 
 
procedure PassSpaces;
begin
  while char.IsWhiteSpace(ch) do
    NextCh;
end;
 
procedure NextLexem;
begin
  PassSpaces;
  // R К этому моменту первый символ лексемы считан в ch
  LexText := '';
  LexRow := Row;
  LexCol := Col;
// Тип лексемы определяется по ее первому символу
// Для каждой лексемы строится синтаксическая диаграмма
  case ch of
  ';': begin
         NextCh;
         LexKind := Tok.SEMICOLON;
       end;  
  ':': begin
         NextCh;
         if ch<>'=' then 
           lexerror('= ожидалось');
         NextCh;
         LexKind := Tok.ASSIGN;
       end;
  'a'..'z': begin
         while ch in ['a'..'z','0'..'9'] do
           NextCh;
         if KeywordsMap.ContainsKey(LexText) then
           LexKind := KeywordsMap[LexText]
         else LexKind := Tok.ID;
       end;
  '0'..'9': begin
         while char.IsDigit(ch) do
           NextCh;
         LexValue := integer.Parse(LexText);
         LexKind := Tok.INUM;
       end;
    #0: LexKind := Tok.EOF;   
    else lexerror('Неверный символ '+ch);
  end;  
end;
 
procedure InitKeywords;
begin
  KeywordsMap['begin'] := Tok.&BEGIN;
  KeywordsMap['end'] := Tok.&END;
  KeywordsMap['cycle'] := Tok.CYCLE;
end;
 
procedure Init(fn: string);
begin
  InitKeywords;
  fname := fn;
  AssignFile(f,fname);
  reset(f);
  row := 1; col := 1;
  NextCh;    // Считать первый символ в ch
  NextLexem; // Считать первую лексему, заполнив LexText, LexKind и, возможно, LexValue
end;
 
procedure Done;
begin
  close(f);
end;
 
function TokToString(t: Tok): string;
begin
  Result := t.ToString;
  case t of
Tok.ID:   Result += ' ' + LexText;
Tok.INUM: Result += ' ' + LexValue; 
  end;
end;
 
end.

Почему при компиляции ошибка leksanalyz.pas(36,15) Fatal: Syntax error, «:» expected but «:=» found?

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


Понравилась статья? Поделить с друзьями:
  • Foxit reader произошла ошибка при
  • Foxit reader ошибка при печати
  • Foxit reader ошибка при открытии
  • Foxit reader ошибка при запуске приложения 0xc0000142
  • Fox мистер ошибка турецкий сериал на русском