View previous topic :: View next topic |
Author |
Message |
Rustem

Joined: 07 Oct 2009 Posts: 18 Location: Башкортостан
|
(Separately) Posted: Fri Apr 13, 2012 11:50 Post subject: Копирование файлов в зависимости от присутствия текста |
|
|
Здравствуйте ! Мне нужно повесить на кнопку следующий алгоритм :
Есть каталог «Родитель» . Курсор стоит на этом каталоге . В нем куча подкаталогов ( в них в свою очередь тоже своё дерево подкаталогов ) .В конце каждого конечного подкаталога ( в конце дерева) могут быть файлы типа «данные.csv».
Если находим нужные фрагменты текста в файлах csv ( например слово «в архив» или «утверждено») , то нужно скопировать и заархивировать файлы с нужными нам расширениями + если в названии имени файла есть зарезервированные слова .
Например все файлы типа «подписано*.doc» , «утверждено*.prn» и др…
Скопировать надо по заданному пути в текущую дату .
Архив должен иметь название «Родитель». ( например D:\Архив\ 13042012\Родитель.rar). |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Apr 13, 2012 13:43 Post subject: |
|
|
Rustem
За подобный коловрат не берусь, но несколько вопросов для облегчения реализатору (если вдруг такой появится) задам.
1. Почему так усложнён подход? Эти csv-файлы нельзя сделать обычным текстом и поместить их в корневые папки? Почему эти файлы должны быть именно в самом глубоком каталоге?
2. Этот последний каталог в каком из подкаталогов первого уровня должен находится? Как это определять?
3. Файлы с нужными расширениями на каких глубинах находятся? На разных или на конкретных?
4. Правильно я понимаю, что все файлы должны паковаться в один архив, а не в отдельные? |
|
Back to top |
|
 |
Rustem

Joined: 07 Oct 2009 Posts: 18 Location: Башкортостан
|
(Separately) Posted: Sun Apr 15, 2012 00:56 Post subject: |
|
|
Ответ Flasher-у :
1. Архив данных формировался начиная с 90-х годов. И ничего уже там не изменишь . Там файлы в которых надо искать текст в формате csv ( и они разные : где-то есть нужный текст , где-то нет ) . Файлы csv находятся в самом глубоком каталоге.
2. Самый глубокий каталог находится максимум во 2-ом уровне относительно Родителя ( D:\Родитель\потомок_1\ , D:\Родитель\потомок_2\ , D:\Родитель\потомок_N\ )
3. Соответственно п.2 файлы с нужными расширениями находятся на одной глубине вложенности относительно каталога "Родитель".
4. Все файлы должны паковаться в один архив . Если есть совпадающие имена файлов , то можно добавить к имени файла добавляемого файла _2, _3 , _4 и т.д. |
|
Back to top |
|
 |
Mellomann

Joined: 07 Sep 2009 Posts: 709
|
(Separately) Posted: Sun Apr 15, 2012 01:41 Post subject: |
|
|
Rustem
Если есть возможность - лучше вынести нужные ключевые слова типа "подписано, утверждено..." в конец имени файла (ну, или первые две-три буквы, чтобы не захламлять, например, нечто вроде "347856_пп_утв.csv"). Если бы не нужно было проводить поиск в содержимом, а достаточно только по именам - было бы намного проще. Тем более, как я вижу, если допускается добавление некоторого количества знаков в конец - это будет рациональным решением.
О том, как это можно дописать, думаю, слова "поиск по содержимому" и "групповое переименование" с чтением справки по ним прояснят ситуацию с дописыванием нужных слов в конце.
Если же эти "дописи" уже есть в именах - тогда задача моментально упрощается:
• заходим в нужного "потомка_№***",
• жмакаем Ctrl+B (плоский вид),
• далее в выделение по Num-Plus задаём какие файлы нам нужны (масками вида *_утв*.*, *_пп*.*, главное, чтобы эти приписки в конце были уникальны и не пересекались с названиями документов)
• "упаковать...", дальше - как обычно, с упаковкой ничего особенного.
При этом в конечном архиве не будет совпадающих путей, и, следовательно, необходимость дописывать числа (типа "_2", "_3" и т.д.) просто отпадает.
Просто и гениально. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Apr 15, 2012 05:07 Post subject: |
|
|
2Rustem
2. СSV-файлы могут на первом уровне вложенности находиться? Или они только на втором?
Родитель - это выделенная папка или рабочая? Если выделенная, то смотреть нужно последний каталог каждого из подкаталогов и брать файлы из него, а не всех сразу, что в родителе, учитывая данные всех csv родителя в сумме? |
|
Back to top |
|
 |
Rustem

Joined: 07 Oct 2009 Posts: 18 Location: Башкортостан
|
(Separately) Posted: Sun Apr 15, 2012 11:19 Post subject: |
|
|
Flasher-у:
2. Файлы csv могут и на первом уровне вложенности находится , но проверка на наличие текста в csv-файле нужна только для второго уровня и по результату поиска в файле csv брать файлы для копирования и архивации только из каталогов второго уровня .
Родитель - это папка на котором стоит курсор. Она ( эта папка ) не выделена ( папка на активной панели видимо получается) .
Mellomann-у :
Нужно проводить поиск именно в СОДЕРЖИМОМ файла csv , т.к. он называется стандартно во всех подкаталогах: "данные.csv" .
Так что никаких "дописей" в именах увы нет .
И да, кстати, задача то стоит в том, чтобы получился ОДИН архив под именем "Родитель.rar" , а не куча архивов под именем потомок_1.rar , . . . , потомок_N.rar . |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Apr 15, 2012 12:16 Post subject: |
|
|
Rustem wrote: | Самый глубокий каталог находится максимум во 2-ом уровне относительно Родителя | А как же?: Rustem wrote: | В нем куча подкаталогов ( в них в свою очередь тоже своё дерево подкаталогов ) |
Rustem wrote: | в файле csv брать файлы для копирования и архивации только из каталогов второго уровня . | >> Flasher wrote: | смотреть нужно последний каталог каждого из подкаталогов и брать файлы из него, а не всех сразу, что в родителе, учитывая данные всех csv родителя в сумме? | т.е. csv+csv+.. = exts всех подкаталогов родителя или csv1 = exts одного подкаталога, csv2 = exts другого подкаталога и т.д.? |
|
Back to top |
|
 |
Rustem

Joined: 07 Oct 2009 Posts: 18 Location: Башкортостан
|
(Separately) Posted: Sun Apr 15, 2012 19:48 Post subject: |
|
|
Flasher-у :
На счет "В нем куча подкаталогов ( в них в свою очередь тоже своё дерево подкаталогов ) " - все правильно , только там нет нужных нам файла csv , и файлов которые надо скопировать и заархивировать . Там вспомогательная инфа, её можно не учитывать, т.к. нужных файлов для копирования там нет. Так что работаем только с каталогом второго уровня.
Смотреть нужно КАЖДЫЙ каталог ВТОРОГО уровня и брать файлы из него , если там встречается искомый текст в csv файле . |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|