Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
сделал функцию рекурсивного поиска файлов по расширениям, начиная с заданной папки. возможно задавать несколько расширений сразу. Но работает медленно, а для больших массивов данных нормальная работа возможна только с версией необук 5.6.4а, т.к. там можно отключить сообщение о долгой работе скрипта. Например, поиск ехе файлов начиная с папки Windows занимает 22 сек, при этом обрабатываются 1180 подпапок и находится 1329 из 14520 файлов. Так что если надо кому для небольших обьемов данных, спрашивайте...
получается переборка за полторы миллисекунды на файл... вот такая вот скорость у скриптов
я так понимаю что на нб нельзя сделать рекурсивный поиск? я попробовал, что-то данных маловато... уровень вложенности неизвестен, теоретически предел перебора скрипта стремится к бесконечности. как обработать это? loop не годится, while тоже не особо работает... причем переменные должны быть универсальными для оборотов цикла (вручную массив не напишешь, т.к. опять же неизвестен уровень), а если они где-то вдруг переназначатся, часть данных потеряется... ниасилил вобщем. должен быть специальный оператор типа "для каждого элемента из..." For Each ... In ...
Добавлено (02 Сентябрь 2010, 00:53) --------------------------------------------- а вроде и можно, на бумажке получается... надо еще мозжечок напрячь. эх, люблю сам с собой поговорить, ггг... пора блог аткрывать.
Добавлено (02 Сентябрь 2010, 01:08) --------------------------------------------- нифига, как остановиться не зная уровень и степень рекурсии? While-ами не обойтись. И как избежать перекрытия массива подпапок? Формировать автоматом новые? сложный в обработке потом будет вариант...
я так понимаю что на нб нельзя сделать рекурсивный поиск?
Мне кажется нет препятствий патриотам Если порассуждать, то кроме while рекурсию еще можно организовать подпрограммами (используя имя подпрограммы как точку запуска), например так:
я уже думаю об этом... ну это несложно, а вот как организовать хранение результатов поиска, чтобы переменные не перезаписывались... в процедуре должны работать массивы, в один складываются подпапки по мере их нахождения с нарастанием индекса массива (это я сделал, чтоб потом их перебрать при поиске файлов), а в другом входящие данные и промежуточные результаты - подпапки для текущей подпапки и так далее - вот с этим проблема, как формировать имя переменной массива, если уровень вложенности подпапок для текущей подпапки неизвестен, а количество подпапок/подпапок/подпапок дофигища. и обработать потом еще. тут надо чтоб промежуточный результат одного прохода процедуры опять подавался на вход, но при этом не перезаписался очередными результатами. сбрасывать его в очередной массив? формировать новый индекс текущего массива? а если рекурсия стремится к бесконечности?
Добавлено (02 Сентябрь 2010, 01:29) --------------------------------------------- думаю это принципиально невозможно, нужен оператор типа For Each...
На VBS с этим будет тоска! Подобные вещи (поиск файлов) нужно делать только на нормальных языках. Я уж запланировал это в плагин запихнуть. Пока руки не дошли.. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
как формировать имя переменной массива, если уровень вложенности подпапок для текущей подпапки неизвестен
Можно ведь внутри while просто поставить переменную-счетчик, которая будет номер цикла фиксировать и дописывать к переменной хранящей имя папки, тем самым создавая новую составную переменную [[имя папки][счетчик]]. ...?
ну давай тогда ты мозгуй, я думаю командами нб не обойтись
Добавлено (02 Сентябрь 2010, 01:42) --------------------------------------------- Сделай еще поиск по реестру, и можно будет тебе памятник поставить. А чем ты последнее время занимаешься, если не секрет? про сайт забыл...
Это ты об чём? - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Дата: Чт, 02 Сентября 2010, 01:44 | Сообщение # 10
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
Quote (Вадим)
Можно ведь внутри while просто поставить переменную-счетчик, которая будет номер цикла фиксировать и дописывать к переменной хранящей имя папки, тем самым создавая новую составную переменную [[имя папки][счетчик]]. ...?
тем самым с увеличением вложенности переменная будет расти бесконечно... и как ее потом обрабатывать? в каких-таких циклах и условиях?
Дата: Чт, 02 Сентября 2010, 01:48 | Сообщение # 11
Админ NeoBook
Администраторы
Сообщений: 7425
Offline
Quote (DEMBEL)
о сабже темы, о чем же еще...
А.... А я уже было воодушевился - думал "о бабах"!
Да понятно, что чисто в NB с этим тоже будет тоска. Каким должен быть поиск файлов? Просто по маске и "вглубь"? - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Дата: Чт, 02 Сентября 2010, 01:51 | Сообщение # 12
Генератор идей
Модераторы
Сообщений: 3173
Offline
Quote (DEMBEL)
с увеличением вложенности переменная будет расти бесконечно...
Ну это да, и на здоровье, как говорится. Для этого и счетчик. Счетчик же покажет уровень вложенности, и переменные, хранящие пути к файлам, могут содержать даже одинаковые имена файлов, имена самих переменных благодаря счетчику будут разными. Обрабатывать содержимое этих переменных можно потом как обычные строки... Или я что-то не то сочиняю? Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Дата: Чт, 02 Сентября 2010, 01:54 | Сообщение # 13
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
да, по маске и вглубь. вот что я сочинил, у тебя нб 5.6.4, скрипт не будет выдавать предупреждение (для 5.6.2 строку закомментировать). тычь на расширения файлов и топчи искать, токо не скармливай корневой диск, до утра шуршать будет.
то что ты сочиняешь это единственно возможный вариант тут, но он к сожалению бредовый...
Добавлено (02 Сентябрь 2010, 01:54) --------------------------------------------- еще надо чтоб сразу несколько расширений искал, как в демке. тыкай на несколько расширений
Дата: Чт, 02 Сентября 2010, 02:06 | Сообщение # 14
Админ NeoBook
Администраторы
Сообщений: 7425
Offline
Quote (DEMBEL)
тычь на расширения файлов и топчи искать, токо не скармливай корневой диск, до утра шуршать будет.
Ну так если штатному виндовскому поисковику задать корневой диск, то тоже до утра шуршать будет.
В принципе, у меня нашел в "музакальной папке" 1085 мр3-файлов чуть более, чем за 14 секунд, а виндовский что-то около секунды искал. А в папке этой у меня дохренища ещё и wma, и мидях.... Тут есть над чам задуматься... - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Дата: Чт, 02 Сентября 2010, 02:09 | Сообщение # 16
Админ NeoBook
Администраторы
Сообщений: 7425
Offline
А во второй раз потребовалось только 9 с половиной секунд... - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Дата: Чт, 02 Сентября 2010, 02:54 | Сообщение # 20
Админ NeoBook
Администраторы
Сообщений: 7425
Offline
Quote (DEMBEL)
это как так за секунду?
А так! Собственно, так и должно быть. Сейчас попробовал прямолинейно код Delphi - стандартные FindFirst и FindNext Те же условия и то же количество файлов - практически мгновенно! - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Дата: Чт, 02 Сентября 2010, 03:40 | Сообщение # 25
Админ NeoBook
Администраторы
Сообщений: 7425
Offline
Quote (DEMBEL)
сандра, биджис... отлично ) придумай еще с несколькими расширениями
И скриншот выложи! DEMBEL, ты решил посмотреть ЧТО там за музон у меня имеется? Так самое ценное не на компе, а на CD! На компе - так... "жвачка для фона"...
Я пока сделал набросок только по одной маске расширения. Надо "тему" изучать, а то и действительно:
Quote (Alex3A)
Усе сожрет
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться