| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > ошибка 183 - если файл открыт в процедуре? |
| Автор: vl1639 16.1.2009, 20:49 |
| Открываю файл для записи в основной программе, - все вроде нормально. Чтоб разгрузить программу - выношу в одну из процедур присоединение и открытие файла, и запись в него и - на операторе ReWrite(f) - вылезает ошибка "I/O error 183" и программа стопорится. Года два назад я уже наступал на эти грабли и мне что- то здесь посоветовали, но я так редко программирую, что не записавши, все позабыл. Помогите советом и простите за бестолковость. Наверное что-то элементарное упускаю. |
| Автор: hkdkest 17.1.2009, 00:39 |
| Может ты два раза Rewrite используешь, т.е. когда файл занят |
| Автор: Christoph 17.1.2009, 01:40 |
| Покажи код |
| Автор: Данкинг 17.1.2009, 02:10 |
| Глюк с открытием файла какой-то. Без кода действительно ничего не понять. |
| Автор: vl1639 17.1.2009, 13:07 | ||
Вот, я попробовал выделить отдельно обращение к процедуре, в которой надо записать файл в другую папку
|
| Автор: Rrader 17.1.2009, 13:23 | ||||||||
vl1639, 183 ошибка означает следующее:
Работаешь паскалевским методом - сделай проверку, есть ли уже такая директория, вроде такой:
И еще:
файл забыл:
|
| Автор: vl1639 17.1.2009, 17:22 |
| to Rrader: 1.В этом примере ошибка исчезла. Посмотрю попозже в полном коде, где такого типа операций поболее. Я знал, что означает ошибка 183, и знал, что файла не существовало к моменту создания. Но почему ошибка вылезала на операции с файлом, а не с директорией? (а WriteLn(ff, 'Hello') - это просто описка в сообщении) 2.А непаскалевским методом как бы это выглядело, если нетрудно - поясни? |
| Автор: vl1639 19.1.2009, 08:31 |
| To Rrader 1.Спасибо за пример. Почитал про процедуры и функции из этого класса- для моих задач, похоже, ничего не упрощается и функционально не расширяется. 2.Кажется тему надо закрыть, но все же почему ошибка I/O вылезает у меня на ReWrite, хотя исключение формировалось на MkDir. У меня в реальной программе между этими операторами десятки других и обращения к процедурам(но все не из класса I/O). Это смущает. Может у меня в Delphi6 чего-то недоставлено? Помнится, давно еще, когда я устанавливал, я для экономии места много чего поотменял. Может чего-то доставить? |
| Автор: Rrader 19.1.2009, 08:39 | ||||||
Нужен весь код, тогда можно будет говорить о причине.
Вот-вот
RTL ты не исключишь. Все в норме. |
| Автор: vl1639 19.1.2009, 23:53 | ||
Цитата Rrader Дата 17.1.2009, 17:37
В приведенном сокращенном коде останов с сообщением об ошибке у меня стабильно возникает в процедуре с полосой на ReWrite (при наличии создаваемой поддиректории и отсутствии в ней открываемого файла). А в полной программе было то же самое и это запутывало. |