Главная страница
    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.47 MB
Время: 0.035 c
8-1111240005
Radgar
2005-03-19 16:46
2005.07.18
Как изменить разрешение монитора.


11-1102593979
Jon
2004-12-09 15:06
2005.07.18
Using Synapse with KOL


14-1119361860
Zelius
2005-06-21 17:51
2005.07.18
Почему тему закрыли?


10-1096498814
Ivan K
2004-09-30 03:00
2005.07.18
Тупой вопрос. Как вытащить данные из xml?


1-1119615468
heckfy1
2005-06-24 16:17
2005.07.18
Настройка принтера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский