Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Построение дерева каталогов

Ответить
Настройки темы
[решено] Построение дерева каталогов

Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: kaster
Дата: 05-09-2009
Описание: Уменьшено изображение
Вложения
Тип файла: rar Foldertree_v2.1_src.rar
(32.1 Kb, 123 просмотров)
Тип файла: rar FolderTree_v21_exe.rar
(316.2 Kb, 169 просмотров)
Всем привет. очередной мой нубский опус из элементарных вещей, изученных мной при достижении азов данного языка.
На этот раз передо мной встала задача - построить древовидную структуру файлов и папок для составления отчета. после хождения по просторам интернета, ничего стоящего (бесплатных естественно) кроме Karen's directory print и zdp не нашел.
Но меня ждали разочарования по каждой из прог.
Первая всюду вставляет ненужные мне и моему начальству строки типа мэйд бай бла бла бла, а вторая в таком непотребном виде представляет, что смотреть уже не хочется.
Поэтому я решил осуществить сие дело своими (и AutoIt) силами.
И так - скрипт строит дерево каталогов в текстовом и html видах с указанием кол-во файлов и папок в конце. Во втором случае есть подсветка определенных типов файлов условно разбитых на категории, типа: текстовые файла, архивы, видео-файлы, аудио файлы и тд и также непосредственно перейти в нужную папку щелкнув по ссылке. При желании список можно легко дополнить внеся соответствующие изменения в include файл со списком расширений придерживаясь формата.
как обычно, ни на что не претендует, лично моим требованиям удовлетворяет.
если есть что сказать/исправить/дополнить, то как говорится - you're welcome.
PS: не выбирайте папки с большим кол-вом файлов, скорость оставляет желать лучшего.

Updated

Дополнено до версии 2

* немного исправлены разделители иерархии, как в текстовом так и в html-ном вариантах
+ время генерации файла с деревом

Маааленький апдейт до версии 2.1

+ Добавил favicon.ico

PS: имеется небольшой баг при наличии одних только папок, без файлов внутри в виде лишней полоски в html - варианте (см. скрин)
победить не смог, бился долго. может у кого возникнут идеи. буду только рад



PPS: Спасибо Creat0R'у за исправления по ускорению
Спасибо SyDr за подсказку о встроенной виндовой тулзе, которая легла за основу нового варианта html-версии построения
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:48, 28-08-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Вложения
Тип файла: zip FolderTree_v1.2_src.zip
(30.8 Kb, 91 просмотров)

Неплохо!

Я тут переделал немного(?) - ускорение плюс читабельность кода.

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

P.S
Для ускорения обработки циклов, кроме прочего я изменил метод поиска расширении файлов, тут быстрее искать через StringInStr, чем вызывать поиск в массиве который использует лишние циклы.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Последний раз редактировалось Creat0R, 28-08-2009 в 16:24.

Это сообщение посчитали полезным следующие участники:

Отправлено: 05:14, 28-08-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для SyDr

Старожил


Сообщения: 215
Благодарности: 62

Профиль | Отправить PM | Цитировать


В состав винды входит программа TREE. Делает тоже самое. Правда, без всякого оформления.
Но вещь всё равно полезная. Спасибо.

-------

"Что мы думаем, знаем или во что верим в конце концов не так уж и важно.
Важно лишь то, что мы делаем."
Джон Раскин

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:40, 28-08-2009 | #3


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


Привет, Creat0R
Спасибо за дополнения. Непривычно немножко из-за переобозначений, но для постороннего глаза, наверное, действительно читабельнее
По поводу скорости - да, действительно, ускорение налицо. Причем даже во втором скрипте, где отдельно обрабатываются файлы и папки, как в моем скрипте.
Отсюда я делаю вывод, что вся медленность действительно была в поиске по расширениям через массивы, и возможно из-за filewriteline вместо filewrite с возвратом каретки в конце.
PS: я наверное возьму на вооружение именно второй вариант, так как мне кажется что лучше когда сначала идут папки а потом уже файлы в стиле total commander'а

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru


Отправлено: 10:43, 28-08-2009 | #4


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата kaster:
Непривычно немножко из-за переобозначений, но для постороннего глаза, наверное, действительно читабельнее »
Лучше привыкайте именно так писать, это принято в среде AutoIt'а.
Например строковые переменны префиксятся $s, массивы $a. Подробнее тут (Variable Names).

Цитата kaster:
возможно из-за filewriteline вместо filewrite с возвратом каретки в конце »
Не совсем. Тут если присмотреться, накапливаются данные записи в файл в отдельную переменную, и файл открывается на запись лишь в конце, после поиска файлов.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:54, 28-08-2009 | #5


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


SyDr,
надо же изобрести колесо, иначе скушно
а оформление к выводу от TREE можно легко приделать при желании.
PS: спасибо, я не знал про эту прогу. сколько искал в гугле, ни одного упоминания почему-то о ней. Кстати работает он гораздо быстрее чем наши с Creat0R'ом скрипты

Цитата Creat0R:
Не совсем. Тут если присмотреться, накапливаются данны е записи в файл в отдельную переменную, и файл открывается на запись лишь в конце, после поиска файлов »
так я про то и говорю, накопить данные а потом хором написать, как мне кажется, быстрее, чем писать по строке каждый раз.
Цитата Creat0R:
Лучше привыкайте именно так писать, это принято в среде AutoIt'а. »
я не к тому, что этот подход мне непривычен вообще, логику в этом я вижу, я имею в виду непривычно после того как я насмотрелся на свои переменные, без всяких префиксов

Отправлено: 10:54, 28-08-2009 | #6


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата kaster:
так я про то и говорю »
Где?:

Цитата kaster:
Отсюда я делаю вывод, что вся медленность действительно была в поиске по расширениям через массивы, и возможно из-за filewriteline вместо filewrite с возвратом каретки в конце. »


Цитата kaster:
я имею в виду непривычно после того как я насмотрелся на свои переменные, без всяких префиксов »
Префиксы там были своего рода, но очень смутные, не понять для чего служит какая переменная.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 11:08, 28-08-2009 | #7


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Где?: »
Там же
Цитата kaster:
Отсюда я делаю вывод, что вся медленность действительно была в поиске по расширениям через массивы, и возможно из-за filewriteline вместо filewrite с возвратом каретки в конце. »
Цитата Creat0R:
Префиксы там были своего рода, но очень смутные, не понять для чего служит какая переменная. »
они были далеко не по этим причинам.
вобщем, я понял, возьму на вооружение

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru


Отправлено: 11:13, 28-08-2009 | #8


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата kaster:
Кстати работает он гораздо быстрее чем наши с Creat0R'ом скрипты »
на то они и бинарники

Отправлено: 11:19, 28-08-2009 | #9


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


кстати, Creat0R, условие @extended при проверке на корень диска почему то не работает должным образом.
если поставить условие которые было у меня все норм. можешь проверить

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru


Отправлено: 12:42, 28-08-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Построение дерева каталогов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочие - Программы для создания дерева каталогов. Pooshit Программное обеспечение Windows 45 19-07-2020 20:20
CMD/BAT - [решено] Backup дерева папок по маске newb1e Скриптовые языки администрирования Windows 4 27-07-2009 17:28
Теория - Подсчёт узлов двоичного дерева рекурсивной функцией Gamover jr Программирование и базы данных 6 11-11-2007 18:15
Создание нового доменного дерева в существующем лесу Wolf3D Microsoft Windows NT/2000/2003 9 16-05-2006 18:41
Построение графика dimon55 Хочу все знать 1 05-05-2004 21:26




 
Переход