Имя: Пароль:
1C
1C 7.7
v7: Можно ли написать обработку для выборки *.jpg-файлов из каталога?
0 Paul_Nevada
 
17.02.13
16:12
*В каталоге лежат много подкаталогов и уже в них - файлы и другие подкаталоги...
1 GROOVY
 
17.02.13
16:13
Я не против.
2 NS
 
17.02.13
16:19
1000 рублей.
3 NS
 
17.02.13
16:23
4 yra77
 
17.02.13
16:26
Да можно. Вроде никто не возражает, но для объективности хотелось бы голосовалку- у нас все таки демократия.
5 Paul_Nevada
 
17.02.13
16:34
спасибо!
6 ДенисЧ
 
17.02.13
16:46
7000 рублей
7 ЧеловекДуши
 
17.02.13
16:49
Да, я разрешаю :)
8 Эльниньо
 
17.02.13
17:05
(6) 7 тыров только за разрешение написать?
Дороговато, однако.
9 Фокусник
 
17.02.13
17:08
10 Torquader
 
18.02.13
01:08
И в чём проблема - посмотреть описание объекта Scripting.FileSystemObject и его метод GetFolder и коллекции у этого объекта.
11 orefkov
 
18.02.13
01:33
(10)
Вложенные каталоги уже требуют рекурсии,  не каждому дано.
А так да, можно. Разрешаю.
12 orefkov
 
18.02.13
01:35
(10) да и зачем там это? ФС вполне достаточно.
13 Сияющий Асинхраль
 
18.02.13
01:43
Помнится даже на 7.7 народ менеджер файлов писал, на восьмерке он бы был гораздо симпатичней
14 Torquader
 
18.02.13
01:57
(11) Просто там всё просто и ясно - для рекурсии придётся вызывать функцию, но не нужно будет создавать новый объект для перебора.
15 Cthulhu
 
18.02.13
02:01
(11): не обязательно.
16 Torquader
 
18.02.13
02:04
(15) Можно через очередь, когда мы в неё пихаем каждый найденный каталог, а по окончании перебора просто достаём с другого конца следующий, пока там что-то есть.
Работает быстрее рекурсии, так как директория просматривается вся за один раз.
17 Cthulhu
 
18.02.13
02:56
(16): скорее через фифо-стек. два вложенных цила, стек с подкаталогами, внешний цикл пока не кончится стек, во внутреннем пополнение стека подкаталогами при обходе содержимого текущего (очередного подкаталога из внешнего цикла). стартовая инициализация списка подкаталогов - помещение текущего.
18 Paul_Nevada
 
18.02.13
09:05
(16) что за очередь? поясни, пожалуйста.
19 ЧеловекДуши
 
18.02.13
09:08
(18)Мы тут посовещались. И решили, что ты можешь делать :)
20 ЧеловекДуши
 
18.02.13
09:10
+(18)Все оченно просто, сначала ты получаешь списки всех каталогов + по пути и фалов.
Пишешь все это в ТЗ + Список значений.
Далее перебираешь из ТЗ + Список значений, как тебе угодно.
...
Лучше для сего алгоритма использовать рекурсию wiki:Рекурсия :)
21 Mikeware
 
18.02.13
09:12
(20) чтобы понять, что такое рекурсия - нужно понять, что такое рекурсия!©
22 HeroShima
 
18.02.13
09:16
1000 и вы сможете выбирать что угодно откуда угодно
23 ЧеловекДуши
 
18.02.13
09:21
(21)Думаешь он не осилит?
24 Paul_Nevada
 
18.02.13
09:27
С Вами и не осилю?)
25 orefkov
 
18.02.13
09:53
(17)
Любая рекурсия - это цикл + стек.
Так что если где-то видишь стек и цикл, пахнет рекурсией :)
26 DGorgoN
 
модератор
18.02.13
10:11
Вот зачем 1с никам нужна вышка. Что бы недоделанные не приходили.
27 HeroShima
 
18.02.13
10:24
(26) судя по мисте не помогает
28 ЧеловекДуши
 
18.02.13
12:28
(24)Порой задавая правильные вопросы, вы получите правильные ответы :)
29 ЧеловекДуши
 
18.02.13
12:28
+ Пауль, зачем тебе 1С, в неваде найдется и другой продукт :)
30 Cthulhu
 
18.02.13
13:17
(25): ну, рекурсии я знаю. умею и люблю.
и - разве что "пахнет", и то в непременном случае динамического пере-определения заполненности стека и его непременной модификации при его же использовании (проходе). а так - да, все верно.
но любовь моя к рекурсиям порой сильно меня огорчает - в связи с тем, что её реализация в 1с (и не только) при потенциально заранее неизвестном граничном количестве вложенности вызовов - сжирает ресурсов немерянно из-за создания полной копии кода+окружения для каждого вызова. :(
31 Бертыш
 
18.02.13
13:23
(26) А я как-то и без вышки рекурсивные функции писал. Правда не на 1С, а на ассемблере x86
32 HeroShima
 
18.02.13
16:36