Форум
Написать нам
Страница 1 из 212»
Модератор форума: Peter 
Форум MMB » Всё о программе Neo Book » Вопросы и ответы по NB » Команда FileList
Команда FileList
DEMBELДата: Среда, 10 Февраль 2010, 10:15 | Сообщение # 1
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Голова еще не соображает после вчерашних опытов с Alex3A, поэтому подсказывайте мне.
FileList "[PubDir]*.nst" "Files" "[FList]"
Нада собрать файлы с расширением nst в папке. В результате этой команды собираются файлы не только с расширением .nst, но и с .nst_, .nstr, короче с любым содержащим эти буквы. Это не есть гуд, как исправить?
Вопрос вдогонку совсем простой - распарсить список [FList] - в качестве делимитера там что, перевод строки [#13]? А может есть какой нибудь другой способ, было бы логичнее если бы имена файлов сразу клались в массив, а то выдумали же список... Да и как потом определить количество файлов (не через заднее место)? С каждым из файлов потом надо будет провести воспитательную работу в цикле, как я там узнаю сколько надо оборотов сделать? Да, глупые вопросы, понимаю, но заранее спасибо за ответы.
 
Alex3AДата: Среда, 10 Февраль 2010, 12:15 | Сообщение # 2
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2957
Репутация: 31
Награды: 10
Статус: Offline
DEMBEL, лист это объект, так сказать, извращенный массив, у него должны быть
свойства и методы такие как count-количество итемов в листе, и способы доступа к
любому из них, не думаю что в нб лист их не имеет.
 
DEMBELДата: Среда, 10 Февраль 2010, 15:07 | Сообщение # 3
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
нет, по-ходу это просто переменная содержащая имена файлов с новой строки
 
PeterДата: Среда, 10 Февраль 2010, 15:47 | Сообщение # 4
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (DEMBEL)
Вопрос вдогонку совсем простой

DEMBEL, можно по-разному сделать. Тут уж как тебе будет удобнее...
Я бы наверное применил ListBox (или ComboBox), т.к. правильно сказал Алекс - с ним проще будет, чем просто с массивом переменных.
А вот про это:
Quote (DEMBEL)
не только с расширением .nst, но и с .nst_, .nstr, короче с любым содержащим эти буквы.

впервые слышу.
scratch
Пожалуй, тут надо применить (в цикле) ExtractFileExt, проанализировать результат, и выбрасывать все лишнее.
Другое пока на ум не приходит...

Но, вообще-то это очень прикольно: ".nst_, .nstr,".
И откуда такие "перлы" берутся?
:D


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
DEMBELДата: Среда, 10 Февраль 2010, 16:00 | Сообщение # 5
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (Peter)
И откуда такие "перлы" берутся?

это я сам случайно обнаружил, когда решил сохранить бекап файла под другим именем (ну т.е. расширением)
эмм, ну ладно, придется вбскрипт писать, так удобнее...
 
PeterДата: Среда, 10 Февраль 2010, 16:08 | Сообщение # 6
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (DEMBEL)
эмм, ну ладно, придется вбскрипт писать, так удобнее...

Зачем?
У NB есть все необходимое для подобных дел.
Для неё это - "семечки".
:)

А с VBS одни только глюки.
Во всяком случае, у меня именно такое впечатление осталось от прошлогодних "экспериментов".
:D


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
DEMBELДата: Среда, 10 Февраль 2010, 16:13 | Сообщение # 7
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Глюки? посмотрим, были конечно, но не смертельные и в зависимости от ситуации. Просто телодвижений гораздо меньше там будет и работать побыстрее, а добавив в скрипт команды необук можно сразу добиться желаемого результата
 
PeterДата: Среда, 10 Февраль 2010, 16:17 | Сообщение # 8
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (DEMBEL)
Просто телодвижений гораздо меньше там будет

Возможно и так, но ведь тогда никогда NB толком не изучишь! ;)
Quote (DEMBEL)
и работать побыстрее,

Не уверен...
Quote (DEMBEL)
а добавив в скрипт команды необук можно сразу добиться желаемого результата

Ок!
Потом расскажешь?
:)

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
DEMBELДата: Среда, 10 Февраль 2010, 16:21 | Сообщение # 9
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
ну щас закончу, проверю и положу. выборка файлов из заданной папки с заданным расширением и складывание в нб-массив. а обьем массива легко определяется, насколько я помню...

Добавлено (10 Февраль 2010, 16:21)
---------------------------------------------
и выбирать в принципе можно и по всем существующим свойствам файла, не только по расширению

Добавлено (10 Февраль 2010, 16:21)
---------------------------------------------
и подпапки заодно шерстить, ну это мне уже не надо

 
DEMBELДата: Среда, 10 Февраль 2010, 16:53 | Сообщение # 10
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
вот например. При необходимости можно сделать чтобы только имя файла возвращал, аналогично FileList.

Добавлено (10 Февраль 2010, 16:53)
---------------------------------------------

Quote (Peter)
Не уверен...

ну сравни аналогичную конструкцию в нб с этим, поглядим что будет с увеличением кол-ва файлов
Прикрепления: FList.rar(3Kb)
 
PeterДата: Среда, 10 Февраль 2010, 17:41 | Сообщение # 11
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (DEMBEL)
ну сравни аналогичную конструкцию в нб с этим, поглядим что будет с увеличением кол-ва файлов

Нет, DEMBEL, похоже, что тут ты ошибаешься!
Вот смотри (в прикреплении): я переделал твой пример, но уже на чистом языке NB, без VB-функции.
Код NB работает быстрее VB!
Это чувствовалось даже интуитивно, но, для пущей убедительности, я поставил таймер на прошедшее время для операции.
Разница, конечно, невелика, но она не в пользу VBS!
Причем, там я показал одно из возможных решений.

Мой код закомментирован, твой сохранен.
Попробуй (по очереди) сам, может на твоём компе будет иная картина.
Кто знает...

Прикрепления: FList2.rar(3Kb)


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
DEMBELДата: Среда, 10 Февраль 2010, 18:05 | Сообщение # 12
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
я не понел, что именно ты замеряешь таймером? скорость складывания переменных в листбокс? :)

Добавлено (10 Февраль 2010, 18:05)
---------------------------------------------
нада таймер вначале всего ставить, а он там перед листбоксом.

 
PeterДата: Среда, 10 Февраль 2010, 18:10 | Сообщение # 13
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (DEMBEL)
нада таймер вначале всего ставить, а он там перед листбоксом.

DEMBEL, тут ты прав, это я впопыхах лоханулся.
Попробовал как ты сказал...
Но все-равно, код NB быстрее!
:)

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
mishemДата: Среда, 10 Февраль 2010, 18:12 | Сообщение # 14
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
Peter, А у меня DEMBELя пример быстрей проходит. И на много быстрей.

Я люблю думать что умею рисовать
 
DEMBELДата: Среда, 10 Февраль 2010, 18:17 | Сообщение # 15
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
там только при вызове функции задержка почти в секунду на запуск, так что твой вариант уже лучше. Тут надо старт таймера воткнуть в сам скрипт чтобы принципиально померить время работы самого кода.

Добавлено (10 Февраль 2010, 18:17)
---------------------------------------------

Quote (mishem)
Peter, А у меня DEMBELя пример быстрей проходит. И на много быстрей.

там таймер не там стоит, так что это неверно. Если мерять скорость от момента складывания в листбокс :) то действительно быстрее, т.к. просто меньше операторов.
 
PeterДата: Среда, 10 Февраль 2010, 18:21 | Сообщение # 16
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (mishem)
Peter, А у меня DEMBELя пример быстрей проходит. И на много быстрей.

scratch
Кто его знает в чем тут "фокус"...
Как то давно я заметил, что скорость работы NB скриптов зависит от антивиря, который установлен.
С каспером вообще завал - дольше всех!

Я не против VВ-функций, а только "ЗА" обеими руками, но делать их нужно полноценно с защитой от дурака, а не так, что глючат как только чуть что не так.

Но, в любом случае, я убежден, что если есть возможность решить задачу средствами самой NB, то так и надо делать, а VB отдать то, на что NB неспособна.


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
Alex3AДата: Среда, 10 Февраль 2010, 18:26 | Сообщение # 17
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2957
Репутация: 31
Награды: 10
Статус: Offline
Quote (DEMBEL)
то действительно быстрее, т.к. просто меньше операторов.

не меряй скорость по количеству операторов, это не правильно.

Добавлено (10 Февраль 2010, 18:26)
---------------------------------------------

Quote (Peter)
Я не против VВ-функций,

У меня на них алергия, ну просто не люблю.
Quote (Peter)
Но, в любом случае,...

Вот это верно на 100 персентов.
 
DEMBELДата: Среда, 10 Февраль 2010, 18:27 | Сообщение # 18
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
в общем для 152 файлов: скрипт в среднем 1560мс, сценарии нб 578мс
но вопрос о неподходящих расширениях остается открытым.
 
PeterДата: Среда, 10 Февраль 2010, 18:29 | Сообщение # 19
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Кстати, обратите внимание - в свое время ас-мастер вообще не пользовался плагинами, и все делал на "чистом" ММВ (такова была его позиция), и КАК делал!
А сейчас другие многие чуть-что сразу орут: "плагин нам, иол, дайте!", а поработать головой никто не желает!
Как ас-мастера не стало, так в ММВ полнейший застой наступил!

Это я говорю "вообще", а не про присутствующих здесь...


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
mishemДата: Среда, 10 Февраль 2010, 18:31 | Сообщение # 20
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
Quote (DEMBEL)
там таймер не там стоит

Я переставил таймер в самое начало.
Quote (Peter)
Кто его знает в чем тут "фокус"...

действительно не понятно. Каждый раз показывает разное время. Но все равно на VВ при поиске всего 44 файлов, в среднем на секунду быстрее. Антивирь по моему как и у тебя, ДрВеб))

Я люблю думать что умею рисовать
 
DEMBELДата: Среда, 10 Февраль 2010, 18:36 | Сообщение # 21
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (mishem)
Но все равно на VВ при поиске всего 44 файлов, в среднем на секунду быстрее.

да хрен знает, у меня каспер стоит - ето раз - нада отключить.
Во вторых - в сценарии петера не проверяются расширения - это два, а это принципиальный момент, тут тормоз и может произойти.

Добавлено (10 Февраль 2010, 18:36)
---------------------------------------------

Quote (DEMBEL)
в сценарии петера не проверяются расширения

собсно поэтому я и взялся за функцию, т.к. подумал что будет быстрее
 
Alex3AДата: Среда, 10 Февраль 2010, 18:36 | Сообщение # 22
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2957
Репутация: 31
Награды: 10
Статус: Offline
mishem, тут имеет еще и степень замусоренности главного мусорника, реестра.
Quote (Peter)
в свое время ас-мастер

Подтверждаю!
Peter, а как так таймером ты что то меряеш, просвети.
 
DEMBELДата: Среда, 10 Февраль 2010, 18:40 | Сообщение # 23
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (Alex3A)
Peter, а как так таймером ты что то меряеш, просвети.

неважно что мы меряем. мы меряем не атомное время, а время двух разных сценариев относительно друг друга, так что для их сравнения таймер можно использовать, оба сценария работают в одинаковых условиях.
 
mishemДата: Среда, 10 Февраль 2010, 18:47 | Сообщение # 24
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
Alex3A, Не понятно что тут имеет :D Сейчас поставил поиск в папке где 642 файла, тоже gpg. Теперь Peterа пример быстрее. %)

Я люблю думать что умею рисовать
 
DEMBELДата: Среда, 10 Февраль 2010, 18:52 | Сообщение # 25
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (mishem)
Теперь Peterа пример быстрее.

я уже понял почему - да, зависит от общего кол-ва файлов в папке, если там будет тысяча файлов и среди них десяток jpg, то будет смотреть все. нада логику скрипта поменять, я посмотрю что можно сделать. Счас схожу в магаз и займусь этим, потом сравним, если еще Peter наковыряет пример нб с проверкой расширений.
 
PeterДата: Среда, 10 Февраль 2010, 19:52 | Сообщение # 26
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (Alex3A)
Peter, а как так таймером ты что то меряеш, просвети.

Необушный таймер (по умолчанию) имеет опцию подсчета прошедшего времени (в мс) с момента его запуска до момента остановки, и неважно что там написано в скрипте события таймера и каково время его срабатывания, прошедшее время всегда подсчитывается.
А дальше все просто: перед началом выполнения скрипта - TimerStart, а с окончанием скрипта TimerStop, и, вуаля, смотрим время. :)

Добавлено (10 Февраль 2010, 19:45)
---------------------------------------------

Quote (DEMBEL)
если еще Peter наковыряет пример нб с проверкой расширений.

DEMBEL, а зачем?
Я сейчас решил проверить:
Quote (DEMBEL)
В результате этой команды собираются файлы не только с расширением .nst, но и с .nst_, .nstr, короче с любым содержащим эти буквы.

и провел "эксримент".
Взял папку с jpg-файлами и сменил расширения с .jpg на ._jpg, и подсунул команде FileList...
Та вот она мне НИЧЕГО не нашла, если указать расширение .jpg!
Полный синтаксис такой:
Code
FileList "[Folder]\*.jpg" "Files" "[LOF]"

Т.е. в маске надо указывать *.jpg, а ты (судя по твоему примеру) пишешь просто jpg.
Попробуй...

Добавлено (10 Февраль 2010, 19:52)
---------------------------------------------
Ан, нет вс еже,если сделать расширение *.jpg_, то находит.
Ладно, сейчас подумаю о "фильтре"....


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
DEMBELДата: Среда, 10 Февраль 2010, 20:29 | Сообщение # 27
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (DEMBEL)
FileList "[PubDir]*.nst" "Files" "[FList]"

Добавлено (10 Февраль 2010, 19:57)
---------------------------------------------
если нужные символы идут вначале переменной - jpge, jpgblabla, то они включаются в результат, чтото там недоглядели программеры

Добавлено (10 Февраль 2010, 19:58)
---------------------------------------------
так можно и крупно ошибиться c выборкой-то...

Добавлено (10 Февраль 2010, 20:29)
---------------------------------------------
короче говоря, средний результат с выборкой скриптом на моем компе:
152 из 576 - 1480мс
1 из 576 - 1120мс
33 из 100 - 220мс
1 из 100 - 85мс
10 из 20 - 78мс
1 из 20 - 72мс
видно, что с увеличением общего числа файлов скорость резко падает, кол-во требуемых для поиска файлов не столь критично.

 
PeterДата: Среда, 10 Февраль 2010, 20:32 | Сообщение # 28
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
DEMBEL, в прикреплении твой пример с "фильтром-проверкой" расширений.
Всего-то две команды добавились.
Дальнейшее - за тобой!
:)
Quote (DEMBEL)
чтото там недоглядели программеры

Да есть чуток!
Может это и не их вина - нужно проверить как это в делфях работает...
Прикрепления: FList3.rar(3Kb)


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
DEMBELДата: Среда, 10 Февраль 2010, 20:33 | Сообщение # 29
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (DEMBEL)
видно, что с увеличением общего числа файлов скорость резко падает, кол-во требуемых для поиска файлов не столь критично.

что, в принципе, и следует из логики применяемого поиска... улучшить ее я не вижу как.

Добавлено (10 Февраль 2010, 20:33)
---------------------------------------------
щас затестю

 
PeterДата: Среда, 10 Февраль 2010, 20:34 | Сообщение # 30
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (DEMBEL)
короче говоря, средний результат с выборкой скриптом на моем компе:

DEMBEL, тебе заняться нечем?
Ты все "правую кнопку" просил.
:)

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
Форум MMB » Всё о программе Neo Book » Вопросы и ответы по NB » Команда FileList
Страница 1 из 212»
Поиск: