Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];

Вниз

Загвоздка с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.041 c
4-1117047851
kat
2005-05-25 23:04
2005.07.18
Использование чужих классов


14-1119789328
Chuvak
2005-06-26 16:35
2005.07.18
DVD+-RW?


1-1120045761
12345
2005-06-29 15:49
2005.07.18
вставка и запуск собственных кусков кода из проги


1-1119677865
syte_ser78
2005-06-25 09:37
2005.07.18
Отображение окна


1-1120153587
Michael5
2005-06-30 21:46
2005.07.18
Как заполнить StringGrid данными из файла Excel?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский