Автор | Сообщение |
|
| |
Пост N: 1
Зарегистрирован: 05.03.11
|
|
Отправлено: 05.03.11 23:08. Заголовок: Мониторинг папки
Уважаемые, как лучше всего сделать в HMG слежение за изменениями в каталоге. А именно - как только в данном каталоге появился новый файл - запустить определенную функцию, например вывод содержимого этого файла в ListBox.
|
|
|
Ответов - 11
[только новые]
|
|
|
| |
Пост N: 16
Зарегистрирован: 20.02.11
|
|
Отправлено: 06.03.11 01:03. Заголовок: А чего тут думать ....
ALanIN пишет: цитата: | сделать в HMG слежение за изменениями в каталоге. |
| Вешаешь на таймер функцию CheckFolder() набросал примерно по ходу, возвращает имя нового файла или пустую строку, не проверяем удаление файла Func CheckFolder() local aDir := Directory( GetStartupFolder() + "\*.*" ) local cFile := '' LOCAL cNew := '' LOCAL i := 0 static aFolder := {} if Empty(aFolder ) aFolder := aDir // на первый раз end for i := 1 To Len(aDir) if aScan( aFolder, { |y| y[1] == aDir [1] } ) == 0 cFile := aDir[1] exit end end aFolder := aDir Return cFile
|
|
|
|
| |
Пост N: 2
Зарегистрирован: 05.03.11
|
|
Отправлено: 06.03.11 11:51. Заголовок: Date:03/06/11 Time: ..
цитата: | Date:03/06/11 Time: 11:49:41 Error BASE/1070 Argument error: == Called from __EVAL(42) Called from ASCAN(0) Called from CHECKFOLDER(42) Called from (b)MAIN(26) Called from _DOCONTROLEVENTPROCEDURE(4171) Called from EVENTS(1071) Called from _DOMESSAGELOOP(0) Called from _ACTIVATEWINDOW(3862) Called from MAIN(10) |
| aScan( aFolder, { |y| y[1] == aDir[1] } ) == 0 - здесь косяк
|
|
|
|
| |
Пост N: 20
Зарегистрирован: 20.02.11
|
|
Отправлено: 06.03.11 12:24. Заголовок: Ты ж идею просил
Ты же идею просил, идею скинул. Не проверял на работоспособность , но должно идти .Далее, допиливай ее под свои нужды Кстати ошибку мог бы и сам исправить aScan( aFolder, { |y| y[1] == aDir [1] } ) == 0
|
|
|
|
| |
Пост N: 21
Зарегистрирован: 20.02.11
|
|
Отправлено: 06.03.11 12:26. Заголовок: индекс массива добавь
индекс массива добавь aScan( aFolder, { |y| y[1] == aDir[1] } )
|
|
|
|
| |
Пост N: 3
Зарегистрирован: 05.03.11
|
|
Отправлено: 06.03.11 12:27. Заголовок: Directory кстати - м..
Directory кстати - многомерный массив , ну в смысле что aDir[1] - это не название файла
|
|
|
|
| |
Пост N: 22
Зарегистрирован: 20.02.11
|
|
Отправлено: 06.03.11 12:30. Заголовок: классный глюк
Классный глюк , если запостить aScan( aFolder, { |y| y[1] == aDir[1] } ), между aDir и [1] стоит буковка i в квадратных скобках - то этот индекс пропадает. А я подумал сам пропустил
|
|
|
|
| |
Пост N: 4
Зарегистрирован: 05.03.11
|
|
Отправлено: 06.03.11 13:21. Заголовок: Эхх :( если каталог ..
Эхх :( если каталог был пуст изначально, и в нем появился 1 файл то этот файлик никак не отлавливается :(. Если затем пришел ещё 1 файл то он уже видится как новый. И ещё если за интервал сканирования пришло 10 файлов - то отлавливается как новый только один
|
|
|
|
| |
Пост N: 23
Зарегистрирован: 20.02.11
|
|
Отправлено: 06.03.11 14:28. Заголовок: ALanIN Скинь почт..
ALanIN Скинь почту , я тебе лучше мылом пример отправлю. чтоб конфу не раздувать этими изысками
|
|
|
|
| постоянный участник
|
Пост N: 484
Зарегистрирован: 25.12.07
|
|
Отправлено: 06.03.11 15:57. Заголовок: Вообще, такой скан п..
Вообще, такой скан по таймеру, это очень уж грубовато. Если речь про Win, то для мониторинга файловой системы здесь используются три WinAPI-функции: FindFirstChangeNotification, FindCloseChangeNotification, FindNextChangeNotification. Поищите, возможно кто-нибудь и делал HB_FUNC-обертки этих функций для [x]Harbour-а.
|
|
|
|
| постоянный участник
|
Пост N: 229
Зарегистрирован: 06.02.07
|
|
Отправлено: 09.03.11 08:03. Заголовок: Haz пишет: Классный..
Haz пишет: Уж сколько раз твердили миру... :) что, мол, ребятыыыы, при запостивании исходников проверяйте выложенное предпросмотром на эти "классные глюки" (оно ж _глазом_ видно, где вместо "[ i" стоит "[i" - с того места курсив полез) - а то иногда (особенно в относительно больших текстах) намаешься выправлять "убитое парсером"... а что уж говорить про каких-нибудь "начинающих"? он скопипастил, закомпилил, не работает :(((((
|
|
|
|
| постоянный участник
|
Пост N: 506
Зарегистрирован: 27.01.07
|
|
Отправлено: 09.03.11 10:11. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Поищите, возможно кто-нибудь и делал HB_FUNC-обертки этих функций для [x]Harbour-а. |
| Поиск не дал результатов :) А вообще-то, функции нужные.
|
|
|
|