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

Вниз

файлы   Найти похожие ветки 

 
картман ©   (2011-11-14 15:22) [0]

есть сервис:
мониторит каталог и как в нем появляется файл, что-то там с ним делает. Файл сообщений:
<messages>
 <mess>
   <id>идентификатор</id>
   <>текст<>
 </mess>
<messages>
 К каждому тексту могут быть отдельно добавлена директория (имя каталога = идентификатор текста) с доп. инф.(эта информация тоже подвергается обработке) В файле сообщений никак не указывается, что есть доп. инфа. Файл(с доп. файлами) выкладывается одним копированием.
 Вопрос: как сделать так, чтоб не потерять доп. инфу?


 
Jeer ©   (2011-11-14 15:27) [1]

Еще раз и внятнее.


 
clickmaker ©   (2011-11-14 15:28) [2]

> имя каталога = идентификатор текста

т.е. <id>c:\somedir</id>?


 
KSergey ©   (2011-11-14 15:28) [3]

> Вопрос: как сделать так, чтоб не потерять доп. инфу?

Предлагаю:
1) указать;
2) не терять.


 
картман ©   (2011-11-14 15:46) [4]


> Jeer ©   (14.11.11 15:27) [1]


в папку d:\MyDir кладется файл MyDoc.xml:

<messages>
<mess>
  <id>123</id>
  <>текст<>
</mess>
<messages>

и - необязательно - дополнительные файлы, относящиеся к какому-нибудь сообщению из MyDoc:

d:\MyDir\<id>\file_list

я мониторю MyDir на предмет изменений ReadDirectoryChangesW - как появляется файл, и как он становится доступен для чтения, так  обрабатываю. Вот как мне гарантированно не упустить приложения к текстам, которые могут быть в папках с именем идентификатор_текста? Дополнения в папка_идентификатор_текста кладутся примерно в одно время(за одно копирование - руками) и начинать обработку надо как можно быстрее.


 
clickmaker ©   (2011-11-14 15:55) [5]

а где живут папки с именем идентификатор_текста? в d:\mydir?
ReadDirectoryChangesW  bWatchSubtree = true?


 
картман ©   (2011-11-14 17:00) [6]


> d:\mydir?

да


>  bWatchSubtree = true?

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


 
Jeer ©   (2011-11-14 17:02) [7]

Исключить ручной труд и обрабатывать скриптами.


 
Компромисс   (2011-11-14 17:03) [8]


> Ладно, наверное единственно верное решение, это попросить
> "выкладывателя" делать пометки, есть ли дополнения и сколько
> в них файлов.


Либо ждать N минут. Но при этом "выкладыватель" может забыть скопировать остальные файлы


 
картман ©   (2011-11-14 17:27) [9]


> Исключить ручной труд

нельзя, увы, - комп, на который выкладывают файл, доступа к внешней сети(откуда данные приходят) не имеет(и не будет)


> Компромисс   (14.11.11 17:03) [8]


> Либо ждать N минут. Но при этом "выкладыватель" может забыть
> скопировать остальные файлы

или скопирует их в (N+1) минут.


 
Медвежонок Пятачок ©   (2011-11-14 17:30) [10]

комп, на который выкладывают файл, доступа к внешней сети(откуда данные приходят) не имеет(и не будет)

я один не понял как это?

Файлы на комп приходят оттуда, куда этот комп не имеет доступа.


 
картман ©   (2011-11-14 17:35) [11]


> Медвежонок Пятачок ©   (14.11.11 17:30) [10]

прошу прощения.

Комп(А) - сеть(а)
Комп(Б) - сеть(б)
Исходные данные приходят на Комп(а), обрабатывать надо в сети б.
связь между сетями а и б организована по протоколу "пусть админ на флешке перетаскивает, все равно ничего не делает"


 
Медвежонок Пятачок ©   (2011-11-14 17:37) [12]

ну так запузырь ему на флешку свой project1.exe


 
clickmaker ©   (2011-11-14 17:38) [13]

> пусть админ на флешке перетаскивает, все равно ничего не
> делает

так пусть он и доп. инфу указывает, раз все равно ничего не делает


 
Компромисс   (2011-11-14 17:41) [14]


> или скопирует их в (N+1) минут.
>


Поэтому нужно знать N. Если точно неизвестно, сколько максимум надо ждать, то задача решения не имеет. Может, через 5 лет дополнительные файлы появятся, и поэтому надо ждать 5 лет. А если не появятся, то нарушится требования "начинать обработку надо как можно быстрее".


 
Компромисс   (2011-11-14 17:44) [15]


> ну так запузырь ему на флешку свой project1.exe


+1.

Очень странно, когда пишут Windows сервис для задачи, которая выполняется один раз в день. Пусть админ запускает bat файл, который и данные скопирует, и программу запустит. Причем, не надо появлений новых файлов ожидать, лучше command line параметры использовать.


 
OW ©   (2011-11-14 17:51) [16]

Как вариант, заставить/организовать сначала копирование доп.файлов
а потом хмл


 
картман ©   (2011-11-14 18:11) [17]


> Как вариант, заставить/организовать сначала копирование
> доп.файлов

перепутает ведь


> clickmaker ©   (14.11.11 17:38) [13]

да, пожалуй


 
Игорь Шевченко ©   (2011-11-14 20:45) [18]

архивировать и передавать архив


 
картман ©   (2011-11-14 21:05) [19]


> архивировать и передавать архив

Конечно! Спасибо.



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

Форум: "Прочее";
Текущий архив: 2012.03.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.097 c
15-1320602490
Vladimir12
2011-11-06 21:01
2012.03.04
Глюки в XE2 Update2


2-1322202217
Dennis I. Komarov
2011-11-25 10:23
2012.03.04
D2010 string -> AnsiString


11-1242734651
regnied
2009-05-19 16:04
2012.03.04
Поиск в глубину


15-1321278885
KilkennyCat
2011-11-14 17:54
2012.03.04
Хочешь заработать?


2-1322144208
Елена
2011-11-24 18:16
2012.03.04
TPageScroller





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский