View previous topic :: View next topic |
Author |
Message |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Tue Dec 02, 2008 20:14 Post subject: |
|
|
Ну вот, что-то получилось: Code: |
args Path
local hwnd = win.handle("c=TTOTAL_CMD")
local Panel = ifelse(tc.active(hwnd) == "left", 8, 7)
local TMLB = childwin.handle(hwnd, "TMyListBox", Panel)
local Counter = win.sendmessage(TMLB, 0x0190, 0, 0)
local Report = Path ++ "1.txt"
local Str
local TabChar = esc(?+\t+, ?+\+)
if(Counter)
win.sendmessage(hwnd, 0x400+51, 3304, 0)
for(;file.validpath(Report);)
file.delete(Report)
endfor
win.sendmessage(hwnd, 0x400+51, 2026, 0)
win.sendmessage(hwnd, 0x400+51, 3301, 0)
for(;)
Counter = win.sendmessage(TMLB, 0x0190, 0, 0)
if(Counter)
break
endfor
win.postmessage(hwnd, 0x400+51, 2039, 0)
for(;)
if(win.getfocus() != hwnd)
break
endfor
win.sendkeys(Report)
keys {enter}
wait.for(10000, file.validpath(Report))
Panel = file.open(Report, "r")
if(Panel <= 0) do
messagebox("ok error", "File not opened", "FILE plugin error #1")
quit
endif
local CSV = Path ++ "1.csv"
local Result = file.open(CSV, "w")
if(Result <= 0) do
messagebox("ok error", "File not opened", "FILE plugin error #2")
quit
endif
for(not(file.eof(Panel)))
Str = file.readstring(Panel)
if(not Str)
continue
Counter = Path ++ replaceg(Str, TabChar, ";")
file.writeline(Result, Counter)
endfor
file.close(Panel)
file.close(Result)
win.sendmessage(hwnd, 0x400+51, 540, 0) |
Выкладывать на сайт пока не буду - полуфабрикат как-никак.
Аргумент "%P"
Не сделано вот это: Quote: | если есть в каталоге изображение(jpeg jpg) ссылка на него в формате название_каталога\название_картинки.расширение
9. так же и на остальные типы файлов дать ссыкли. | потому что неясно, как эти ссылки запихать в csv. Так что ставь задачу четко: какой файл ты хочешь получить на выходе.
Остальной народ: если вам это нужно, пишите, что бы вы хотели от скрипта для себя, любимых. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
kadvlad
Joined: 26 Aug 2007 Posts: 81
|
(Separately) Posted: Wed Dec 10, 2008 16:06 Post subject: |
|
|
Друзья,
если у вас не получается работать с плагином, попробуйте мою схему, использующую DirSizeCalc и anytag.
Положите файлы в корень ТС.
Scheme.ini:
Code: | " before="
" name="" between="@Mod=Composer@anytag.wdx; ;@Mod=Artist@anytag.wdx; ;@Mod=Year@anytag.wdx; ;@Mod=Album@anytag.wdx; " wdxinfo="@Mod=Track (leading zeros)@anytag.wdx; ;@Mod=Title@anytag.wdx; " after="@Mod=Length@anytag.wdx; ;@Mod=Bitrate@anytag.wdx; ;@Mod=Size.MB@->RDirSizeCalc.wdx" footer="
" DirectoryText="" ExtensionList="mp3|wma|mpc|ogg|flac|ape" AdditionalText="" AddCounter=0 DoNotWriteEmpty=0 SaveErrorLog=0 MaxRight=12 IntervalNbr=1 CounterLength=0 CounterPos=1 RecursionDepth=1 strReplaceValue="|" strReplace=0 |
WdxInfoPacker.ini:
Code: | [Main]
LastScheme=Music
Language=English.lng
WdxFolder=C:\Program Files\Totalcmd\Plugins\wdx
KnownPlugin=1
AssocSchemExt=1
CheckBeforeSave=0
RememberLast=1
VerifyWdx=1
Run=0
MaskEditBox=0
TCIni=
[PluginList]
DirSizeCalc.wdx=C:\Program Files\Totalcmd\Plugins\wdx\DirSizeCalc\DirSizeCalc.wdx
anytag.wdx=C:\Program Files\Totalcmd\Plugins\wdx\wdx_anytag\anytag.wdx |
Аналогично можно прикрутить строки для изображений.
Также можно сделать кликабельные ссылки на файлы.
А вылет с ошибкой у плагина случается, если к-л строка в схеме использует некорректный синтаксис, а он довольно мудрёный  |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Thu Dec 11, 2008 21:19 Post subject: |
|
|
2kadvlad
Надо же, а ведь криков "Автора!" слышно не было. Или ты не автор?!
Несколько вопросов: Quote: | Положите файлы в корень ТС | Это не есть хорошо. Если каждый плагин, утилита, скрипт и пр., имеющее отношение к ТС, будет нуждаться в помещении файлов в корень ТС, там вскоре будет такая мешанина... Не лучше ли создать директорию, скажем, WdxInfoPackerInis, и класть все туда?Хм... У меня было несколько иное представление о структуре ini-файлов. Quote: | А вылет с ошибкой у плагина случается, если к-л строка в схеме использует некорректный синтаксис, а он довольно мудрёный | Вот в этом и проблема. Сообщение об ошибке должно звучать примерно так: "Синтаксическая ошибка в строке 123: неверное число параметров".
Напоследок: не будет ли любезен многоуважаемый автор дать исчерпывающие, доходчивые и подробные инструкции по применению двух вышеприведенных файлов? _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
kadvlad
Joined: 26 Aug 2007 Posts: 81
|
(Separately) Posted: Thu Dec 11, 2008 23:40 Post subject: |
|
|
Вахмурка
Quote: | - Слушай, Изя, ты не одолжишь мне 100 рублей?
- Нет! Но за комплимент спасибо. |
Где-то так :)
Увы, я никакой не автор, просто получилось. Почитал хэлп с оф.страницы (англ.) и немного поковырял.
Насчёт расположения ini-шек вот что я-таки вычитал:
Quote: | You can move thoses files to different locations (read/write access needed):
- near wincmd.ini (default)
- in WdxInfoPacker folder near wincmd.ini
- near WdxInfoPacker.wcx
- near Totalcmd.exe |
Ура! Конфиги можно переносить в папку плагина! Попробовал -- работает.
Предложенная конфигурация scheme.ini сформирована в таком виде из личных предпочтений. Плагин позволяет выводить данные в разных форматах, в т.ч. txt и csv, просто html получился нагляднее и аккуратнее. Поскольку вы здесь более искушены в программировании, чем я (это факт), надеюсь, трудностей с пониманием структуры html-таблицы у вас не возникнет.
Из опыта ковыряния могу сказать, что проблема с "вылетанием" плагина связана с очередностью добавления параметров и синтаксиса: каждый элемент (поле wdx-плагина или просто текст) должен отделяться от другого символом ; кроме окончания секции -- она завершается без к-л "закрывающих" символов.
Пробелы допускаются только внутри секции с простым текстом, иначе -- по правилам спец.символов (см. на сайте). Для спец.символов нужно использовать знак %
Важно! wdx-данные могут размещаться в любом поле, кроме секций header и footer.
Добавление элементов в каждую секцию производится нажатием плюсика справа от поля Wanted Information.
Данные оттуда можно переносить в другие секции, а можно оставлять там же в одну строку (не забывая про разделители!).
Можно добавлять разделители полей, счётчики, заменять одни символы на другие, указывать, какие типы файлов обрабатывать.
Можно обрабатывать только каталоги, без вложенных файлов (или с указанием глубины вложения).
Можно форматировать каждую секцию отдельно. Пример: секция "размер в МБ" из плагина DirSizeCalc выровнена по правой стороне (->R): Code: | @Mod=Size.MB@->RDirSizeCalc.wdx |
Можно не выводить строку, если данные в ней отсутствуют.
Можно записывать проигнорированные (ошибочные) строки в отдельный файл (соответствует сеции схемы SaveErrorLog=1). Это, по идее, пишет ошибки обработки отдельных строк, но НЕ всей схемы, так что толку мало. Я искал ошибки методом перебора, добавляя по одной секции.
В случае ошибки (?) в схему добавляется страховочная секция [RunTemp], которая дублирует основную. Можно удалять.
Вроде всё.
UPD. Будут вопросы с переводом -- попробую помочь ;) |
|
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
|