Форум: "Основная";
Текущий архив: 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