![]() |
![]() ![]() |
![]() |
AlexSun |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Код:
assign(f,fname); Если файла нет, на строке с reset(f) программа вылетает с exitcode = 2. Ошибка не в программе, со старыми исходниками дела так же. Переустановка (после полного удаления ручками) ничего не дает. Все нормально после удаления всех файлов fp.cfg, fp.dsk, fp.ini и чего-то еще похожего что там рядом лежит, но это не решает проблему - ведь исчезают все настройки, в том числе директории включаемых файлов (прощай библиотеки). Что за ерунда?? Добавлено через 7 мин. Виновата конфигурация. Сношу конфиг файлы - все работает как надо. Выложите кто свои 100% рабочие? |
IUnknown |
![]()
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вообще-то ТУТ дело явно в программе, у тебя не отключение/включение контроля ошибок ввода-вывода, а простые комментарии, и при включенном режиме Options ->Compiler -> Generated code -> IO Checking программа должна вылетать. А при удалении конфигов ты просто сбрасываешь этот ключ компилятора в дефолтное состояние (а дефолтное у него - "Отключено"), и просто замалчиваешь ошибку. Не надо искать проблем там, где их нет. Исправь программу ({$I-} и {$I+}) и все будет нормально.
Кстати: в папке, куда установлен FPC (т.е., в \fpc\bin\{target}) есть копия fp.cfg, всегда можно забрать ее оттуда. |
AlexSun |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
|
zixeroryrooca |
![]()
Сообщение
#4
|
Гость ![]() |
Не знаю, как это получилось, но еще зависало когда печатал syst, хотя если напечатать sys, а через пробел utils, то после удаления пробела все нормально. Вообщем решилась проблема удалением файла fp.dsk.
|
TarasBer |
![]()
Сообщение
#5
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
А зачем вообще $I обратно на + ставить?
-------------------- |
IUnknown |
![]()
Сообщение
#6
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Затем, что это - дефолтное значение. Как говорится, "не будем нарушать отчетности" (С), было включено - выключили, сделали при выключенном состоянии то, что нужно, включили назад. Да и сам FPC так написан (и компилятор, и IDE, и все дополнительные утилиты).
|
TarasBer |
![]()
Сообщение
#7
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
А если программа изначально компилируется при {$I-}? То получается, что нарушаем как раз.
-------------------- |
IUnknown |
![]()
Сообщение
#8
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
А если программа изначально компилируется при {$I-} , то программист - ССЗБ. Я имел в виду:Цитата(prog.pdf) 1.1.36 $I or $IOCHECKS : Input/Output checking The {$I-} or {$IOCHECKS OFF} directive tells the compiler not to generate input/output check- ing code in the program. By default, the compiler generates I/O checking code. К тому же теперь, с возможностью отлова исключения EInOutError, этот ключ потерял первоначальный смысл, раньше без его отключения нельзя было обойтись, теперь - можно. |
TarasBer |
![]()
Сообщение
#9
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
> то программист - ССЗБ
Ну и зря. Я этот ключ отрубил раз и навсегда и при открытии файлов никаких плясок с директивами не делаю вообще. -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 10.06.2024 19:48 |