Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.18;
Скачать: CL | DM;

Вниз

Загвоздка с I/O error 32   Найти похожие ветки 

 
MuxauJl ©   (2005-06-28 16:37) [0]

Вот такая загвоздка:

//Создаю файл
FileCreate(path+"Log.sys");

//Потом использую свою функцию
LogSys("Первый запуск программы");

//сама функция
function TForm1.logsys(mes: string): string;
var F:textFile;
begin
if FileExists(path+"Log.sys")=true then
begin
AssignFile(F,path+"Log.sys");
Append(F);
Writeln(F,(datetostr(date)+" "+timetostr(time)+" - "+mes));
closefile(F);
end;
end;

ошибка возникает на Append"e.

Ошибка: EInOutError with message "I/O error 32";

Подскажите где ошибка.


 
Pearled ©   (2005-06-28 16:45) [1]

При создании файла он откывается для записи. Или закрывай файл сразу после его создания, или же используй что-то типа этого:

LogSys("Первый запуск программы");

//сама функция
function TForm1.logsys(mes: string): string;
var F:textFile;
begin
AssignFile(F,path+"Log.sys");
if FileExists(path+"Log.sys") then
  Append(F)
else
  Rewrite(F);
Writeln(F,(datetostr(date)+" "+timetostr(time)+" - "+mes));
closefile(F);
end;


 
icWasya ©   (2005-06-28 16:48) [2]

{ The process cannot access the file because it is being used by another process. }
 ERROR_SHARING_VIOLATION = $20;
 {$EXTERNALSYM ERROR_SHARING_VIOLATION}


 
Anatoly Podgoretsky ©   (2005-06-28 17:01) [3]

MuxauJl ©   (28.06.05 16:37)  
А закрывать файл будет дядя Пушкин?


 
MuxauJl ©   (2005-06-28 18:29) [4]

А закрывать файл будет дядя Пушкин?
Это я понял, просто искал немного другой выход.

"...или же используй что-то типа этого:..."
Так я и сделал. Именно это я и искал. Благодарен.

Всем спасибо.


 
Anatoly Podgoretsky ©   (2005-06-28 20:17) [5]

MuxauJl ©   (28.06.05 18:29) [4]
Выход другой, квалифицированый, а не дикий, тебе указали в [1], если предпринять еще и меры по защите от ошибок, то ничего лучше для текстовых файлов не придумаешь.


 
MuxauJl ©   (2005-06-28 22:45) [6]

В итоге я сделал так:

h:=FileCreate(path+"log.sys");
FileClose(h);
LogSys("Первый запуск программы");

Вопрос был, конечно, смехотворный. Просто меня переклинило немного.


 
Плохиш ©   (2005-06-28 22:48) [7]

Бессмысленные строки:

> h:=FileCreate(path+"log.sys");
> FileClose(h);


 
Anatoly Podgoretsky ©   (2005-06-28 22:51) [8]

Плохиш ©   (28.06.05 22:48) [7]
В его не не бессмысленные, просто сам код не того. Смещивать файлы Паскаля с хендловыми операциями не рационално, когда файлы Паскаля сами могут создавать новые файлы. Ну что поделаешь раз он не хочет прислушиваться к хорошим советам, даже к готовому коду.


 
Плохиш ©   (2005-06-28 22:59) [9]

А с учётом реализации функции FileCreate, так и вообще смысла-то в этом "log.sys" большого не вижу, он будет затираться как минимум при каждом старте программы.


 
MuxauJl ©   (2005-06-28 23:13) [10]

А с учётом реализации функции FileCreate, так и вообще смысла-то в этом "log.sys" большого не вижу, он будет затираться как минимум при каждом старте программы.

На счет смысла - это оставь мне. Прога большая и сложная, а это лишь капля в тысячах строк. Тут все к месту и имеет смысл.

Ну что поделаешь раз он не хочет прислушиваться к хорошим советам, даже к готовому коду

Все, я образумился - использую вариант в мессаге [1].


 
Anatoly Podgoretsky ©   (2005-06-28 23:18) [11]

А про защиту от ошибок тоже прислушался, речь про try finaly end


 
MuxauJl ©   (2005-06-29 00:11) [12]

А про защиту от ошибок тоже прислушался, речь про try finaly end

Конечно, тоже учту.


 
Германн ©   (2005-06-29 02:12) [13]

Я бы ещё добавил "Речь про "try...except..finally"!



Страницы: 1 вся ветка

Текущий архив: 2005.07.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.051 c
3-1117714649
suharew
2005-06-02 16:17
2005.07.18
Возможна ли такая ситуация. Кэшируется База?


1-1120137772
and
2005-06-30 17:22
2005.07.18
Трассировка только своих модулей


3-1118307115
ShotGuN
2005-06-09 12:51
2005.07.18
Копирование массива данных


1-1118066353
Дмитрий_05
2005-06-06 17:59
2005.07.18
Событие на закрытие Popup


1-1120152182
olevacho_
2005-06-30 21:23
2005.07.18
массив и компоненты приложения