Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.12.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.017 c
2-1225439961
abhtr
2008-10-31 10:59
2008.12.14
Режим редактирования ячейки DBGrid-a


4-1202120742
igor666
2008-02-04 13:25
2008.12.14
USB-порты


15-1223863730
Slider007
2008-10-13 06:08
2008.12.14
С днем рождения ! 13 октября 2008 понедельник


2-1225361355
Sw
2008-10-30 13:09
2008.12.14
dll


2-1225965108
Саня
2008-11-06 12:51
2008.12.14
Генерация чисел





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский