On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Пост N: 1
Зарегистрирован: 05.03.11
ссылка на сообщение  Отправлено: 05.03.11 23:08. Заголовок: Мониторинг папки


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

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 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


Спасибо: 0 
ПрофильЦитата Ответить



Пост 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 - здесь косяк

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 20
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 06.03.11 12:24. Заголовок: Ты ж идею просил


Ты же идею просил, идею скинул. Не проверял на работоспособность , но должно идти .Далее, допиливай ее под свои нужды

Кстати ошибку мог бы и сам исправить
aScan( aFolder, { |y| y[1] == aDir[1] } ) == 0

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 21
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 06.03.11 12:26. Заголовок: индекс массива добавь


индекс массива добавь
aScan( aFolder, { |y| y[1] == aDir[1] } )

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3
Зарегистрирован: 05.03.11
ссылка на сообщение  Отправлено: 06.03.11 12:27. Заголовок: Directory кстати - м..


Directory кстати - многомерный массив , ну в смысле что aDir[1] - это не название файла

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 22
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 06.03.11 12:30. Заголовок: классный глюк


Классный глюк ,
если запостить
aScan( aFolder, { |y| y[1] == aDir[1] } ), между aDir и [1] стоит буковка i в квадратных скобках - то этот индекс пропадает.
А я подумал сам пропустил

Спасибо: 1 
ПрофильЦитата Ответить



Пост N: 4
Зарегистрирован: 05.03.11
ссылка на сообщение  Отправлено: 06.03.11 13:21. Заголовок: Эхх :( если каталог ..


Эхх :( если каталог был пуст изначально, и в нем появился 1 файл то этот файлик никак не отлавливается :(.

Если затем пришел ещё 1 файл то он уже видится как новый.

И ещё если за интервал сканирования пришло 10 файлов - то отлавливается как новый только один

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 23
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 06.03.11 14:28. Заголовок: ALanIN Скинь почт..


ALanIN
Скинь почту , я тебе лучше мылом пример отправлю. чтоб конфу не раздувать этими изысками

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 484
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 06.03.11 15:57. Заголовок: Вообще, такой скан п..


Вообще, такой скан по таймеру, это очень уж грубовато.

Если речь про Win, то для мониторинга файловой системы здесь используются три WinAPI-функции: FindFirstChangeNotification, FindCloseChangeNotification, FindNextChangeNotification. Поищите, возможно кто-нибудь и делал HB_FUNC-обертки этих функций для [x]Harbour-а.



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 229
Зарегистрирован: 06.02.07
ссылка на сообщение  Отправлено: 09.03.11 08:03. Заголовок: Haz пишет: Классный..


Haz пишет:

 цитата:
Классный глюк ,

Уж сколько раз твердили миру... :) что, мол, ребятыыыы, при запостивании исходников проверяйте выложенное предпросмотром на эти "классные глюки" (оно ж _глазом_ видно, где вместо "[ i" стоит "[i" - с того места курсив полез) - а то иногда (особенно в относительно больших текстах) намаешься выправлять "убитое парсером"... а что уж говорить про каких-нибудь "начинающих"? он скопипастил, закомпилил, не работает :(((((

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 506
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 09.03.11 10:11. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Поищите, возможно кто-нибудь и делал HB_FUNC-обертки этих функций для [x]Harbour-а.


Поиск не дал результатов :)
А вообще-то, функции нужные.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 87
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет