Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Скрипт для индексации
Goto page Previous  1, 2
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
Вахмурка



Joined: 27 Dec 2004
Posts: 2586
Location: Большая деревня Москва

Post (Separately) Posted: Tue Dec 02, 2008 20:14    Post subject: Reply with quote

Ну вот, что-то получилось:
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
View user's profile Send private message
kadvlad



Joined: 26 Aug 2007
Posts: 81

Post (Separately) Posted: Wed Dec 10, 2008 16:06    Post subject: Reply with quote

Друзья,

если у вас не получается работать с плагином, попробуйте мою схему, использующую 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


Аналогично можно прикрутить строки для изображений.
Также можно сделать кликабельные ссылки на файлы.

А вылет с ошибкой у плагина случается, если к-л строка в схеме использует некорректный синтаксис, а он довольно мудрёный Wink
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2586
Location: Большая деревня Москва

Post (Separately) Posted: Thu Dec 11, 2008 21:19    Post subject: Reply with quote

2kadvlad
Надо же, а ведь криков "Автора!" слышно не было. Или ты не автор?!
Несколько вопросов:
Quote:
Положите файлы в корень ТС
Это не есть хорошо. Если каждый плагин, утилита, скрипт и пр., имеющее отношение к ТС, будет нуждаться в помещении файлов в корень ТС, там вскоре будет такая мешанина... Не лучше ли создать директорию, скажем, WdxInfoPackerInis, и класть все туда?
Quote:
Scheme.ini
Хм... У меня было несколько иное представление о структуре ini-файлов.
Quote:
А вылет с ошибкой у плагина случается, если к-л строка в схеме использует некорректный синтаксис, а он довольно мудрёный
Вот в этом и проблема. Сообщение об ошибке должно звучать примерно так: "Синтаксическая ошибка в строке 123: неверное число параметров".
Напоследок: не будет ли любезен многоуважаемый автор дать исчерпывающие, доходчивые и подробные инструкции по применению двух вышеприведенных файлов?
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
kadvlad



Joined: 26 Aug 2007
Posts: 81

Post (Separately) Posted: Thu Dec 11, 2008 23:40    Post subject: Reply with quote

Вахмурка
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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
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