View previous topic :: View next topic |
Author |
Message |
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Aug 10, 2016 16:23 Post subject: |
|
|
Ciber SLasH
Тут на AHK, думаю, в течении дня кто-нибудь спокойно накатает годный во всех смыслах скрипт, скомпилить который - 5 сек. Советую создать топик. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Ciber SLasH
Joined: 20 Aug 2005 Posts: 209 Location: С.-Петербург
|
(Separately) Posted: Wed Aug 10, 2016 16:57 Post subject: |
|
|
Я бы и сам написал программу, но не совсем догоняю алгоритм построения дерева из списка.
Может кто с алгоритмом расскажет? |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Aug 10, 2016 17:13 Post subject: |
|
|
Ciber SLasH
Сортируется список по алфавиту в порядке возврастания папок в пути.
Число папок определяется числом элементов Split-массива по \.
Дальше в цикле для отсортированного списка группируются файлы в соотствующие им папки с созданием отступа, равным глубине вложенности*2. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Ciber SLasH
Joined: 20 Aug 2005 Posts: 209 Location: С.-Петербург
|
(Separately) Posted: Thu Aug 11, 2016 04:00 Post subject: |
|
|
Flasher
Отступы - это не то. Если писать программу, то слева TreeView, справа ListView.
В TreeView иерархия папок. По клику на папке - справа в ListView отображается список файлов.
Посмотри, как в DEViewer выглядит отчёт из PC-3000: acerep-отчёт
DEViewer можно скачать тут.
Вот и нужно состряпать что-то, похожее на DEViewer, но чтобы умело строить дерево из текстового файла. |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1243
|
(Separately) Posted: Thu Aug 11, 2016 04:31 Post subject: |
|
|
Ciber SLasH
Список с группировкой файлов удобнее для заполнения TreeView и ListView при клике. Вообще, это тот ещё гемор, нет ли способа привести список к тому виду, который прожуёт DEViewer?
P.S.
Quote: | C:\2\fgdgdfg.avi;2048000;файл удалён - содержит непрочитанные сектора |
О_о Всегда думал, что некоторые форматы файлов вполне перевариваются, если часть непрочитанных секторов заменить нулями... |
|
Back to top |
|
|
Ciber SLasH
Joined: 20 Aug 2005 Posts: 209 Location: С.-Петербург
|
(Separately) Posted: Thu Aug 11, 2016 11:06 Post subject: |
|
|
Quote: | C:\2\fgdgdfg.avi;2048000;файл удалён - содержит непрочитанные сектора
О_о Всегда думал, что некоторые форматы файлов вполне перевариваются, если часть непрочитанных секторов заменить нулями.. |
Это был пример.
Quote: | привести список к тому виду, который прожуёт DEViewer? |
У него файл - это БД sqlite. Думаю, что сделать прогу конвертирования обычного списка в его формат БД sqlite - будет ещё геморнее. |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1243
|
|
Back to top |
|
|
Ciber SLasH
Joined: 20 Aug 2005 Posts: 209 Location: С.-Петербург
|
(Separately) Posted: Thu Aug 11, 2016 22:47 Post subject: |
|
|
Запускал - выбираю файл, появляется пустое окно. Что-то в скрипте не работает...
Добавлено спустя 59 минут:
Заработало. Нужно было в директорию AutoIt положить sqlite3.dll, sqlite3_x64.dll.
Дерево уже есть. Осталось добавить в этот скрипт ListView.
Добавлено спустя 6 минут:
Здорово! Скрипт и файлы отображает в дереве и рядом базу создаёт (осталось переделать скрипт так, чтобы база под DEViewer создавалась). Можно обойтись и без ListView.
Skif_off выражаю благодарность за полезнейший au3-скрипт. |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Fri Aug 12, 2016 11:18 Post subject: |
|
|
Я уже понял, что проблема решена, и что применение скриптов PowerPro нецелесообразно, однако, во-первых, я обещал выложить пример применения алгоритма. А во-вторых, скрипт может пригодиться в дальнейшем, поэтому я писал его уже не для того, кто попросил, а для себя, любимого: Hidden text Code: | 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
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|