|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
как избежать ошибки 183?
как избежать ошибки 183?
присоединяю и открываю текстовый файл(на чтение или запись) ......... Var f:TextFile; ......... AssignFile(f,'...'); ReWrite(f); ........ вылезает 183, если обойду проверку в этом месте - то 183 появится при попытке записи, закрытия ... Аналогичная картина с созданием и сменой подкаталогов MkDir('..'),ChDir('..'). Подскажите, что я тут не так делаю??? |
#2
|
|||
|
|||
Собственно вопрос о том, что при компилировании ошибок не выдается, а при исполнении вылезает 183 - может надо какое-н указание компилятору писать.
Причем,почему-то в некоторых программах у меня работа с внешними файлами проходит нормально, а иногда без отключения проверки операций ввода-вывода на все команды работы с присоединенными файлами вылезает 183. Не найду причину никак!! |
#3
|
|||
|
|||
пробовал у себя
Цитата:
думаю в таком случае вам надо юзать директиву компилера {$I-} чтоб отрубить встроенную обработку IO исключений, а на ошибки проверять самому через Код:
function IOResult(): Integer; |
#4
|
|||
|
|||
Я этой директивой отключаю проверку IO, на ошибку не проверяю - считая, что условно при создании файла ошибки быть не может. При этом в дальнейшем при каждой попытке записи в файл вылезает 183. Вопрос - при использовании {$I-}, а после создания файла {$I+}
почему значение IOResult не =0 при следующей операции с файлом. |
#5
|
|||
|
|||
в хелпе по Делфи IO ошибки под номером 138 НЕ нашел (хотя написано: ошибки IO с 100 по 149)
попробуй вызвать апишную GetLastError, и код ошибки посмотреть в справке по ВыньАПИ 32. там точно ВСЕ ошибки есть и детально описаны |
#6
|
|||
|
|||
183 -невозможно создать файл, так как он уже существует. Для меня это не ошибка, так как я допускал и перезапись файла.
Не уверен, что это особо корректно, но вставив ненужную мне проверку кода ошибки IOresult, у меня стало все работать без проблем ................................. AssignFile(f,'file.txt'); {$I-} ReWrite(f); If IOresult=183 then begin end; {$I+} Спасибо за подсказки. |
#7
|
||||
|
||||
Цитата:
я так понял, это ошибка чтения или записи? попробуй так if FileExists(Filename) then begin AssignFile(F,Filename); reset(f);//открыть для чтения append(f);//установить режим дополнения end; И никакие директивы отключать не надо! |
#8
|
||||
|
||||
У меня такая же фигня.
Когда запускается моё приложение ищется файл, если файл найден, то читает от туда и потом удаляет его (файл), а при выходе должен сохранять в файл. до определённого момент всё работало нормально, но потом всё отрубило, ну ни как не могу справиться с этой ошибкой. Я попробовал вот такую вещь: Код:
if FileExists(GetCurrentDir + '\' + FileUs) = true then DeleteFile(GetCurrentDir + '\' + FileUs); AssignFile(UsersFile, GetCurrentDir + '\' + FileUs); {$I-} Rewrite(UsersFile); {$I+} if IOResult <> 0 then begin CloseFile(UsersFile); AssignFile(UsersFile, GetCurrentDir + '\' + FileUs); Reset(UsersFile); Append(UsersFile); Файл то он создаёт, но отказывается писать в него, почему так? |