Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.12.14;
Скачать: CL | DM;

Вниз

Как ухапшить файл   Найти похожие ветки 

 
Scarllett   (2008-11-05 10:36) [0]

Проблема выглядит таким образом. Некая (мне чуждая программа) формирует свой файл. Время формирования различно от пары секунд до пяти и более минут. Заранее предсказать очень трудно. Мое приложение должно сграбливать данные  (отдавать их в БД) после того как формирование файла закончено. По атрибутам файла ничего не понять, пыталась по таймеру смотреть размер файла - приложение вываливается с I/O Error. Мож у кого есть идея, что поделать можно. Заранее благодарна за Ваше время и рассмотрение


 
Vlad Oshin ©   (2008-11-05 10:46) [1]

C правами какими открываете? Может, "только на чтенеие" поможет? И вообще, поиск на тему Как прочитать занятый файл..


 
Scarllett   (2008-11-05 10:51) [2]

Спасибо  Влад. В том то и проблема, что он (файл) мне нужен как только (неизвестно когда) освободится, а не в процессе занятости своей


 
brother ©   (2008-11-05 10:54) [3]

> освободится, а не в процессе занятости своей

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


 
Плохиш ©   (2008-11-05 11:00) [4]


> По атрибутам файла ничего не понять, пыталась по таймеру
> смотреть размер файла - приложение вываливается с I/O Error.

Начать надо с изучения обработки исключительных ситуаций в делфи. Ключевые слова try, except, {$I-}


 
Scarllett   (2008-11-05 11:18) [5]

Спасибо Бразза, это как я поняла с обработкой on Exception и т.д..., но если если ошибки не будет. выйдет, что я нечто мне не нужное в файл писну. Что ж касается "... прога опять может попутаться произвести запись ..." то этого я не боюсь, я могу управлять тем когда она начнет запись, вот токи не могу заставить ее закончить вовремя (ну в общем, все как в жизни ;-)


 
Vlad Oshin ©   (2008-11-05 11:27) [6]

не надо писать, надо попытаться открыть с правом на запись


 
Плохиш ©   (2008-11-05 11:48) [7]

Я бы рекомендовал открывать на чтение в эксклюзивном режиме.


 
Scarllett   (2008-11-05 12:06) [8]

Спасибо Влад, Плохиш. Наверно попробую так
долбится Reset (F,1); и на не ошибке делать ухапшивание
Интересно. а совсем других путей нет?


 
Плохиш ©   (2008-11-05 12:14) [9]


> Scarllett   (05.11.08 12:06) [8]

Если файл не текстовый, то стоит рассмотреть TFileStream.


 
Scarllett   (2008-11-05 12:20) [10]

текстовій он, зараза


 
Anatoly Podgoretsky ©   (2008-11-05 12:23) [11]


> Scarllett   (05.11.08 12:06) [8]

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


 
Плохиш ©   (2008-11-05 12:53) [12]


> Scarllett   (05.11.08 12:20) [10]
> Anatoly Podgoretsky ©   (05.11.08 12:23) [11]

А вот смущает меня эта фраза:

> долбится Reset (F,1); и на не ошибке делать ухапшивание

зачем открывать текстовый файл как нетипизированный?


 
Anatoly Podgoretsky ©   (2008-11-05 13:18) [13]

> Плохиш  (05.11.2008 12:53:12)  [12]

Опа не обратил внимания.
Короче кода надо больше, по крайней мене определение файла, потому что  Reset (F,1); это не текстовый файл Паскаля.


 
Scarllett   (2008-11-05 13:28) [14]

Спасибо за обсуждение, я имела ввиду Reset (F)


 
Правильный$Вася   (2008-11-05 14:23) [15]


> делать ухапшивание

у меня море ассоциаций на это слово, и все непечатные


 
Riply ©   (2008-11-05 14:42) [16]

> [0] Scarllett   (05.11.08 10:36)
>...
> Время формирования различно от пары секунд до пяти и более минут. Заранее предсказать очень трудно.
> Мое приложение должно сграбливать данные  (отдавать их в БД) после того как формирование файла закончено.
> Мож у кого есть идея, что поделать можно.

Перехватить закрытее файла ?


 
Scarllett   (2008-11-05 14:43) [17]

ПравоВасе. Это по-польски, там оно вполне печатно


 
Riply ©   (2008-11-05 14:44) [18]

>  [16] Riply ©   (05.11.08 14:42)
Очепятка. Sorry :)


 
Scarllett   (2008-11-05 14:45) [19]

2 Riply. Именно так, не имея связи с программой, которая закрывает


 
Leonid Troyanovsky ©   (2008-11-05 16:24) [20]


> Плохиш ©   (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-06 09:44) [21]

Спасибо LVT, так и сделаю
насчет перевода в студию ... уХАПшить=схватить=сграбастать=ХАПНУТЬ



Страницы: 1 вся ветка

Текущий архив: 2008.12.14;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.015 c
2-1225912955
juri79
2008-11-05 22:22
2008.12.14
Вылетает с ошибкой


2-1225569898
MZG
2008-11-01 23:04
2008.12.14
Узнать выполнение программы по IP


1-1203994220
Anton
2008-02-26 05:50
2008.12.14
Пропадает курсор при вводе


15-1223369865
Василий Жогарев
2008-10-07 12:57
2008.12.14
FreeBSD 7.0-RELEASE & Sendmail - 8.14.2


15-1223507703
Eraser
2008-10-09 03:15
2008.12.14
Об IT, госзаказах и немного об образовании