PDA

Просмотр полной версии : Помогите с файлаим в делфи )


zl0y
02.07.2007, 05:02
Народ хелп возникла проблема,если многократно отрываю для использования программой файл то она вылетает :( как исправить?? Кстати вылетает несразу если 1 прога использует норм,если две тоже норм а если больше вылетает. подозреваю что надо зделать так: f : array of TextFile; но неполучаеться (((

NetMan
02.07.2007, 11:04
Что за ошибка выдается?

Hellsp@wn
02.07.2007, 13:40
f : array of TextFile

зачем так? а просто F: TextFile те не хватает?

Joker-jar
02.07.2007, 14:12
если 1 прога использует норм,если две тоже норм а если больше вылетает
Вылетать может изза того, что файл уже открыт и недоступен. Попробуй код обрамить в try ... except ... end;

Добавлено:

Либо, если используешь многократно файл одной прогой, не забывай закрывать файл перед новым открытием.

Ni0x
02.07.2007, 14:22
Попробуй код обрамить в try ... except ... end;
разве при попытке отрытия занятого файла происходит исключение?

Joker-jar
02.07.2007, 14:32
Ну на 100% не уверен, но думаю исключение EFOpenError как раз этим и занимается

Xserg
02.07.2007, 14:42
разве при попытке отрытия занятого файла происходит исключение?
если при открытии File open modes поставить fmShareExclusive, то другой процесс и на чтение открыть не сможет.

Ni0x
02.07.2007, 15:20
если при открытии File open modes поставить fmShareExclusive, то другой процесс и на чтение открыть не сможет.
причем здесь это?
кстати, на васме есть статья по теме работы с занятыми файлами
http://www.wasm.ru/article.php?article=lockfileswork

Gil
06.07.2007, 21:05
А ты чем с файлами вообще работаешь? Api, паскалевыми ф-ями или потоками? Я когда паскалевскими ассигн, файлопен и т.д. пользовался тож были ошибки такие, да и не такие, в общем много глюков почему-то было хз. Потом перешел на потоки и все нормально, терь всегда потоки юзаю ) и действительно главное не забывать закрывать ..

_Great_
06.07.2007, 21:13
причем здесь это?
кстати, на васме есть статья по теме работы с занятыми файлами
http://www.wasm.ru/article.php?article=lockfileswork
При том, что это решает проблему.
А вот статья с васма тут не в тему совсем

sw_max
10.07.2007, 16:47
подозреваю что файл попросту не закрывается после первого открытия.

_Great_
10.07.2007, 16:56
sw_max, подозреваю, что файл можно открыть хоть 10 раз не закрывая, если указать либо GENERIC_READ и FILE_SHARE_READ или GENERIC_READ|GENERIC_WRITE и FILE_SHARE_READ|FILE_SHARE_WRITE