![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как ухапшить файл [D7, XP]
Scarllett © (2008-11-05 10:36:00)Проблема выглядит таким образом. Некая (мне чуждая программа) формирует свой файл. Время формирования различно от пары секунд до пяти и более минут. Заранее предсказать очень трудно. Мое приложение должно сграбливать данные (отдавать их в БД) после того как формирование файла закончено. По атрибутам файла ничего не понять, пыталась по таймеру смотреть размер файла - приложение вываливается с I/O Error. Мож у кого есть идея, что поделать можно. Заранее благодарна за Ваше время и рассмотрение
Scarllett (2008-11-06 09:44:00) [1]Спасибо LVT, так и сделаю
насчет перевода в студию ... уХАПшить=схватить=сграбастать=ХАПНУТЬ
Leonid Troyanovsky (2008-11-05 16:24:00) [2]
> Плохиш © (05.11.08 12:14) [9]
> Если файл не текстовый, то стоит рассмотреть TFileStream.
Без разницы. TFileStream - forever.
> Scarllett (05.11.08 14:43) [17]
> ПравоВасе. Это по-польски, там оно вполне печатно
Хвойное дерево из 3 букв начинается на "п"?
Просим перевод в студию.
> Scarllett (05.11.08 13:28) [14]
> Спасибо за обсуждение, я имела ввиду Reset (F)
Не нужен никакой Reset.
После таймаута на FindFirstChangeNotification &etc
нужно пытаться открыть файл монопольно и сохранить
его в базу вместе со временем доступа.
По-крайней мере, будет консистентность (лат.)
--
Regards, LVT.
Scarllett (2008-11-05 14:45:00) [3]2 Riply. Именно так, не имея связи с программой, которая закрывает
Riply (2008-11-05 14:44:00) [4]> [16] Riply © (05.11.08 14:42)
Очепятка. Sorry :)
Scarllett (2008-11-05 14:43:00) [5]ПравоВасе. Это по-польски, там оно вполне печатно
Riply (2008-11-05 14:42:00) [6]> [0] Scarllett (05.11.08 10:36)
>...
> Время формирования различно от пары секунд до пяти и более минут. Заранее предсказать очень трудно.
> Мое приложение должно сграбливать данные (отдавать их в БД) после того как формирование файла закончено.
> Мож у кого есть идея, что поделать можно.
Перехватить закрытее файла ?
Правильный$Вася (2008-11-05 14:23:00) [7]
> делать ухапшивание
у меня море ассоциаций на это слово, и все непечатные
Scarllett (2008-11-05 13:28:00) [8]Спасибо за обсуждение, я имела ввиду Reset (F)
Anatoly Podgoretsky (2008-11-05 13:18:00) [9]> Плохиш (05.11.2008 12:53:12) [12]
Опа не обратил внимания.
Короче кода надо больше, по крайней мене определение файла, потому что Reset (F,1); это не текстовый файл Паскаля.
Плохиш (2008-11-05 12:53:00) [10]
> Scarllett (05.11.08 12:20) [10]
> Anatoly Podgoretsky © (05.11.08 12:23) [11]
А вот смущает меня эта фраза:
> долбитсяReset (F ,1);и на не ошибке делать ухапшивание
зачем открывать текстовый файл как нетипизированный?
Anatoly Podgoretsky (2008-11-05 12:23:00) [11]
> Scarllett (05.11.08 12:06) [8]
Зачем искать другие пути, если этот нормальный.
Цикл пока ошибка или таймаут.
При том если я верно понял, то это текстовый файл Паскаля, тогда и блокировка на момент операции будет автоматически.
Scarllett (2008-11-05 12:20:00) [12]текстовій он, зараза
Плохиш (2008-11-05 12:14:00) [13]
> Scarllett (05.11.08 12:06) [8]
Если файл не текстовый, то стоит рассмотреть TFileStream.
Scarllett (2008-11-05 12:06:00) [14]Спасибо Влад, Плохиш. Наверно попробую так
долбится Reset (F,1); и на не ошибке делать ухапшивание
Интересно. а совсем других путей нет?
Плохиш (2008-11-05 11:48:00) [15]Я бы рекомендовал открывать на чтение в эксклюзивном режиме.
Vlad Oshin (2008-11-05 11:27:00) [16]не надо писать, надо попытаться открыть с правом на запись
Scarllett (2008-11-05 11:18:00) [17]Спасибо Бразза, это как я поняла с обработкой on Exception и т.д..., но если если ошибки не будет. выйдет, что я нечто мне не нужное в файл писну. Что ж касается "... прога опять может попутаться произвести запись ..." то этого я не боюсь, я могу управлять тем когда она начнет запись, вот токи не могу заставить ее закончить вовремя (ну в общем, все как в жизни ;-)
Плохиш (2008-11-05 11:00:00) [18]
> По атрибутам файла ничего не понять, пыталась по таймеру
> смотреть размер файла - приложение вываливается с I/O Error.
Начать надо с изучения обработки исключительных ситуаций в делфи. Ключевые слова try, except, {$I-}
brother (2008-11-05 10:54:00) [19]> освободится, а не в процессе занятости своей
обращаться в цикле к файлу на запись, не словили ошибку - файл свободен...
тока вот пока ты грабишь его, прога опять может попутаться произвести запись, а тут ты его занял, ну и не думаю, что прога к такому готова, этож ее файл))))
Scarllett (2008-11-05 10:51:00) [20]Спасибо Влад. В том то и проблема, что он (файл) мне нужен как только (неизвестно когда) освободится, а не в процессе занятости своей