Ищу программу для создания дерева каталогов из списка
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Ciber SLasH
Тут на AHK, думаю, в течении дня кто-нибудь спокойно накатает годный во всех смыслах скрипт, скомпилить который - 5 сек. Советую создать топик.
Тут на AHK, думаю, в течении дня кто-нибудь спокойно накатает годный во всех смыслах скрипт, скомпилить который - 5 сек. Советую создать топик.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
- Ciber SLasH
- Сообщения: 209
- Зарегистрирован: Сб авг 20, 2005 21:41
- Откуда: С.-Петербург
- Вахмурка
- Сообщения: 2587
- Зарегистрирован: Пн дек 27, 2004 14:47
- Откуда: Большая деревня Москва
- Контактная информация:
Я работаю над этим. Если получится - выложу скрипт, срисуешь алгоритм
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Ciber SLasH
Сортируется список по алфавиту в порядке возврастания папок в пути.
Число папок определяется числом элементов Split-массива по \.
Дальше в цикле для отсортированного списка группируются файлы в соотствующие им папки с созданием отступа, равным глубине вложенности*2.
Сортируется список по алфавиту в порядке возврастания папок в пути.
Число папок определяется числом элементов Split-массива по \.
Дальше в цикле для отсортированного списка группируются файлы в соотствующие им папки с созданием отступа, равным глубине вложенности*2.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
- Ciber SLasH
- Сообщения: 209
- Зарегистрирован: Сб авг 20, 2005 21:41
- Откуда: С.-Петербург
Flasher
Отступы - это не то. Если писать программу, то слева TreeView, справа ListView.
В TreeView иерархия папок. По клику на папке - справа в ListView отображается список файлов.
Посмотри, как в DEViewer выглядит отчёт из PC-3000: acerep-отчёт
DEViewer можно скачать тут.
Вот и нужно состряпать что-то, похожее на DEViewer, но чтобы умело строить дерево из текстового файла.
Отступы - это не то. Если писать программу, то слева TreeView, справа ListView.
В TreeView иерархия папок. По клику на папке - справа в ListView отображается список файлов.
Посмотри, как в DEViewer выглядит отчёт из PC-3000: acerep-отчёт
DEViewer можно скачать тут.
Вот и нужно состряпать что-то, похожее на DEViewer, но чтобы умело строить дерево из текстового файла.
Ciber SLasH
Список с группировкой файлов удобнее для заполнения TreeView и ListView при клике. Вообще, это тот ещё гемор, нет ли способа привести список к тому виду, который прожуёт DEViewer?
P.S.
Список с группировкой файлов удобнее для заполнения TreeView и ListView при клике. Вообще, это тот ещё гемор, нет ли способа привести список к тому виду, который прожуёт DEViewer?
P.S.
О_о Всегда думал, что некоторые форматы файлов вполне перевариваются, если часть непрочитанных секторов заменить нулями...C:\2\fgdgdfg.avi;2048000;файл удалён - содержит непрочитанные сектора
- Ciber SLasH
- Сообщения: 209
- Зарегистрирован: Сб авг 20, 2005 21:41
- Откуда: С.-Петербург
Это был пример.C:\2\fgdgdfg.avi;2048000;файл удалён - содержит непрочитанные сектора
О_о Всегда думал, что некоторые форматы файлов вполне перевариваются, если часть непрочитанных секторов заменить нулями..
У него файл - это БД sqlite. Думаю, что сделать прогу конвертирования обычного списка в его формат БД sqlite - будет ещё геморнее.привести список к тому виду, который прожуёт DEViewer?
Ciber SLasH
Не уверен, что сконвертить в нужную базу SQLite больший гемор, чем сделать подобное с нуля.
Нашёл такую тему: Загрузка данных из объемного текстового файла в TreeView.
Не уверен, что сконвертить в нужную базу SQLite больший гемор, чем сделать подобное с нуля.
Нашёл такую тему: Загрузка данных из объемного текстового файла в TreeView.
- Ciber SLasH
- Сообщения: 209
- Зарегистрирован: Сб авг 20, 2005 21:41
- Откуда: С.-Петербург
Запускал - выбираю файл, появляется пустое окно. Что-то в скрипте не работает...Skif_off писал(а):Нашёл такую тему: Загрузка данных из объемного текстового файла в TreeView.
Добавлено спустя 59 минут:
Заработало. Нужно было в директорию AutoIt положить sqlite3.dll, sqlite3_x64.dll.
Дерево уже есть. Осталось добавить в этот скрипт ListView.
Добавлено спустя 6 минут:
Здорово! Скрипт и файлы отображает в дереве и рядом базу создаёт (осталось переделать скрипт так, чтобы база под DEViewer создавалась). Можно обойтись и без ListView.
Skif_off выражаю благодарность за полезнейший au3-скрипт.
- Вахмурка
- Сообщения: 2587
- Зарегистрирован: Пн дек 27, 2004 14:47
- Откуда: Большая деревня Москва
- Контактная информация:
Я уже понял, что проблема решена, и что применение скриптов PowerPro нецелесообразно, однако, во-первых, я обещал выложить пример применения алгоритма. А во-вторых, скрипт может пригодиться в дальнейшем, поэтому я писал его уже не для того, кто попросил, а для себя, любимого:[cut][/cut]
Код: Выделить всё
args List
static Slash = "\"
static N = "\n"
local CurNum, CurLast, CurDir, Str, This, Result, i, j, Item
local All = file.readall(List)
local Len = line(All, 0)
if(Len < 2)
quit
local v = vec.createfromlines(All)
if(v <= 0) do
messagebox("ok error", "Vector not created", "VEC plugin error")
quit
endif
v.sortstring
local Num = word(v[0], 0, Slash)
for(i = 1; i < Num; i++)
Str = word(v[0], i, Slash)
Result ++= "SUB=" ++ Str ++ "\n"
endfor
local Dir = word(v[0], Num - 1, Slash)
for(i = 1; i < Len; i++)
Str = v[i]
CurNum = word(Str, 0, Slash)
CurLast = word(Str, CurNum, Slash)
Item = CurLast ++ "=" ++ CurLast ++ N
CurDir = word(Str, CurNum - 1, Slash)
if(CurDir == Dir) do //same subdir
Result ++= Item
else
if(CurNum == Num) do //another same level subdir
Result ++= "ENDSUB\nSUB=" ++ CurDir ++ N ++ Item
elseif(CurNum < Num) do //end of subdir(s), level(s) up
Result ++= repeat("ENDSUB\n", Num - CurNum) ++ Item
elseif(CurNum > Num) do
for(j = Num; j < CurNum; j++)
This = word(Str, j, Slash)
Result ++= "SUB=" ++ This ++ N ++ Item
endfor
endif
endif
Num = CurNum
Dir = CurDir
endfor
Result = remove(Result, -2)
miscplugin.show_menu("Path", Result)Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)