Что означает Run-Time Error 123 ???

Вопросы программирования и использования среды Lazarus.

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

Что означает Run-Time Error 123 ???

Сообщение M@N » 17.08.2014 21:55:31

На обработке следующих строк кода

Код: Выделить всё
var f:textfile;
...
begin
...
assign(f,'File.txt');
...
  {$I-}
  //Проверка существования файла (IOresult=0 если да).
  append(f);
  //Если существует, то записать данные через пустую строку, иначе создать и записать данные.
  if ioresult=0
    then writeln(f)
    else rewrite(f);
  Write_In_File;//Процедура записи в файл.
  closefile(f);
  MessageDlg('Данные сохранены в файл "File.txt"',mtInformation,[mbOk],0);
  {$I+}


Код: Выделить всё
procedure TForm1.Write_In_File;
begin
...
  writeln(f,UTF8toSys('Строка'));
...
end;


программа выдает эту ошибку на строке

Код: Выделить всё
writeln(f,UTF8toSys('Строка'));


Но до этого все было работоспособным.

:?: :!:

IDE : Lazarus 1.0.14
M@N
незнакомец
 
Сообщения: 5
Зарегистрирован: 17.08.2014 21:36:48

Re: Что означает Run-Time Error 123 ???

Сообщение SSerge » 18.08.2014 04:51:52

Внимательно читаем описание Runtime паскаля. Можно даже для почившего в бозе Borland Pascal :D
Если контроль операций ввода-вывода был выключен директивой $I-, и произошла ошибка ввода-вывода, до тех пор, пока значение переменной IORESULT не прочитано программой, все операции ввода-вывода находятся в неопределенном состоянии и будут приостановлены либо будут заканчиваться ошибкой.

Смотрим, где у вас заканчивается блок {$I-} {$I+}

И делаем так, чтобы IORESULT соответствовал единственной операции, которую вы контролируете.

И да, проверять существование файла через append - это нечто. Функции типа FileExists и прочий stat уже отменили, да?
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Что означает Run-Time Error 123 ???

Сообщение M@N » 18.08.2014 23:43:39

Спасибо за помощь
M@N
незнакомец
 
Сообщения: 5
Зарегистрирован: 17.08.2014 21:36:48


Вернуться в Lazarus

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

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

Рейтинг@Mail.ru