Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

I/O error 32 [D5, WinXP]


Дилетант ©   (2004-06-27 16:37:00) 

Многоуважаемые Мастера. Бьюсь над таким вопросом:

AssignFile (wf, 'armlocal.cfg');
AssignFile (ni, 'number.id');
{I-}
Rewrite (wf);
{I+}
if IOResult=0 then Rewrite (ni);

В четвёртой строчке этого кусочка возникает I/O Error 32.
Я действительно открывал эти файлы раньше, но во-первых я же их и корректно закрывал, да и Rewrite должен в случае чего сначала закрыть файлы. Верю что ошибка у меня примитивная, но за помощь буду очень благодарен.


raidan   (2004-06-27 17:30:00) [1]

ReWrite сразу затирает содержимое файла ака пересоздает...
А Reset - нет.


Anatoly Podgoretsky   (2004-06-27 17:23:00) [2]

Да получает через одно и тоже АПИ, но откуда следует, что тот же самый?


Дилетант   (2004-06-27 17:20:00) [3]

Спасибо raidan и Anatoly Podgoretsky ©. Подали идею. Да действительно нет доступа. Файл занимается побочным процесом. Исправил. Работает.
Перед закрытием ветки удовлетворите всё же моё любопытство - ПОЧЕМУ РАБОТАЛ RESET? Он же в принципе доступ получает так же как и REWRITE?


Дилетант   (2004-06-27 17:08:00) [4]

Т.е. ошибка доступа (по русски). Странно, а почему же тогда Reset не вызывает этой ошибки?


Anatoly Podgoretsky   (2004-06-27 17:07:00) [5]

Из справки
32L       ERROR_SHARING_VIOLATION


Дилетант   (2004-06-27 16:56:00) [6]

Но ведь в Делфи Хелп английским по жёлтому написано, что Rewrite сам должен закрыть файл, если он открыт. Так и что это за ошибка такая?


raidan   (2004-06-27 16:54:00) [7]

Значит байда у тебя где-то перед этим открытием файла.
Либо криво закрываешь, либо играешься с процессами :)


Дилетант   (2004-06-27 16:52:00) [8]

Да и что это вообще за ошибка ввода-вывода 32. Я не смог найти её в Хелпе Делфи. Там все описаные коды больше 100.


Дилетант   (2004-06-27 16:51:00) [9]

Атрибуты не РидОнли, не скрытый, не системный.
А перезагрузиться - попробовал. Безрезультатно.


Дилетант   (2004-06-27 16:49:00) [10]

Тут причём такая хитрость. В прошлый раз эти физические файлы armlocal.cfg и number.id ассигновались с другими текстфайлами, но я их закрываю перед повторным вызовом. Причём при замене Rewrite на Reset (ради эксперимента) ошибка не возникает


raidan   (2004-06-27 16:48:00) [11]

Атрибуты файла - он не read-only?
После перезагрузки такая-же байда?
Чудес-то не бывает.


raidan   (2004-06-27 16:42:00) [12]

Попробуй rewrite(wf,1) если wf не text.


Дилетант   (2004-06-27 16:42:00) [13]

TextFile


raidan   (2004-06-27 16:41:00) [14]

Тип файла wf?


Наверх

Титульная страница Поиск, карта сайта Написать письмо