![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| vl1639 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 17.12.2008 Репутация: нет Всего: нет |
Открываю файл для записи в основной программе, - все вроде нормально. Чтоб разгрузить программу - выношу в одну из процедур присоединение и открытие файла, и запись в него и - на операторе ReWrite(f) - вылезает ошибка "I/O error 183" и программа стопорится. Года два назад я уже наступал на эти грабли и мне что- то здесь посоветовали, но я так редко программирую, что не записавши, все позабыл. Помогите советом и простите за бестолковость. Наверное что-то элементарное упускаю.
|
|||
|
||||
| hkdkest |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 30.11.2008 Репутация: нет Всего: 1 |
Может ты два раза Rewrite используешь, т.е. когда файл занят
|
|||
|
||||
| Christoph |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 667 Регистрация: 23.1.2008 Где: Харьков Репутация: 5 Всего: 11 |
Покажи код
-------------------- ![]() |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Глюк с открытием файла какой-то. Без кода действительно ничего не понять.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| vl1639 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 17.12.2008 Репутация: нет Всего: нет |
Вот, я попробовал выделить отдельно обращение к процедуре, в которой надо записать файл в другую папку
|
|||
|
||||
| Rrader |
|
||||||||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 18 Всего: 191 |
vl1639, 183 ошибка означает следующее:
Работаешь паскалевским методом - сделай проверку, есть ли уже такая директория, вроде такой:
И еще:
файл забыл:
|
||||||||
|
|||||||||
| vl1639 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 17.12.2008 Репутация: нет Всего: нет |
to Rrader:
1.В этом примере ошибка исчезла. Посмотрю попозже в полном коде, где такого типа операций поболее. Я знал, что означает ошибка 183, и знал, что файла не существовало к моменту создания. Но почему ошибка вылезала на операции с файлом, а не с директорией? (а WriteLn(ff, 'Hello') - это просто описка в сообщении) 2.А непаскалевским методом как бы это выглядело, если нетрудно - поясни? |
|||
|
||||
| Rrader |
|
||||||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 18 Всего: 191 |
Тут по-разному можно, через список можно, через потоки можно.
Добавлено @ 17:38
В приведенном коде эта ошибка вываливалась на MkDir(NewDir); остальное все в норме... Это сообщение отредактировал(а) Rrader - 17.1.2009, 17:39 |
||||||
|
|||||||
| vl1639 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 17.12.2008 Репутация: нет Всего: нет |
To Rrader
1.Спасибо за пример. Почитал про процедуры и функции из этого класса- для моих задач, похоже, ничего не упрощается и функционально не расширяется. 2.Кажется тему надо закрыть, но все же почему ошибка I/O вылезает у меня на ReWrite, хотя исключение формировалось на MkDir. У меня в реальной программе между этими операторами десятки других и обращения к процедурам(но все не из класса I/O). Это смущает. Может у меня в Delphi6 чего-то недоставлено? Помнится, давно еще, когда я устанавливал, я для экономии места много чего поотменял. Может чего-то доставить? |
|||
|
||||
| Rrader |
|
||||||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 18 Всего: 191 |
Нужен весь код, тогда можно будет говорить о причине.
Вот-вот
RTL ты не исключишь. Все в норме. |
||||||
|
|||||||
| vl1639 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 17.12.2008 Репутация: нет Всего: нет |
Цитата Rrader Дата 17.1.2009, 17:37
В приведенном сокращенном коде останов с сообщением об ошибке у меня стабильно возникает в процедуре с полосой на ReWrite (при наличии создаваемой поддиректории и отсутствии в ней открываемого файла). А в полной программе было то же самое и это запутывало. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |