PP script Add selected files/folders from TC to WA Playlist

Те, кто ей начинают пользоваться, уже не в силах остановиться! Она может все. Или почти все!

PP script Add selected files/folders from TC to WA Playlist

Сообщение Reuben » Вс мар 16, 2003 10:54 am

С учетом ценных замечаний Ergo
Код: выделить все

local TempClip

local plstring tfile tfilea plst ksan ysan qsan psath_winamp



 psath_winamp = "D:Program FilesWinampwinamp.exe"



TempClip= pprofolder ++ "Scriptscl" ++timesec ++".tmp"

if (file.validpath(TempClip) do

  file.delete (TempClip)

endif

if (clip.get != "") Do

  clip.tofile (TempClip)

  clip.clear

  clip_empty = "0"

Else

  clip_empty = "1"

Endif

tfile=pprofolder  ++ "" ++ timesec ++".tmp"

tfilea=pprofolder ++ "filelist.tmp"

plist=pprofolder ++"ppropls2.m3u"

Window SendMessage "wm_user+51 2018  " Total Commander 5*



clip.tofile(tfile)

ksan=file.open(tfile,"r")

ysan=file.open(tfilea,"w")

for ( plstring=file.readstring(ksan);1;plstring=file.readstring(ksan))

                     if (select(plstring,-1) == "")Do

                      plstring=remove(plstring,-1)

                      file.allfiles("&(plstring)","file.writeline(ysan,'"|'")","1")   

                    Else

                      file.writeline(ysan,plstring)

                    endif

                     if (file.eof(ksan)) do

                         break

                     endif



   endfor

file.close(ysan)

ysan=file.open(tfilea,"r")

qsan=file.open(plist,"w")

for ( plstring=file.readline(ysan);1;plstring=file.readline(ysan))

     plstring=remove(plstring,-1)

    if ((select(plstring,-3) == "mp3") or (select(plstring,-3) == "m3u") or select(plstring,-3) == "pls") do

        file.writeline(qsan,plstring)

    endif              

    if (file.eof(ysan)) do

      break

    endif

endfor

file.close(qsan)

file.close(ksan)

file.close(ysan)



if (not winamp.running) do

 Do(RunFile, "&(psath_winamp)")

endif


;winamp.pls("clear")

winamp.pls("addfile",plist)
;winamp.playback("play")



file.delete(plist)

file.delete(tfile)

file.delete(tfila)

clip.clear

if (clip_empty == "0") Do

  clip.fromfile (TempClip)

  file.delete (TempClip)

EndIf

<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение Saver » Пн мар 31, 2003 11:40 am

Мда .... что-то у меня плоховато стало со скриптами При выборе каталога и активации горячих клавиш выдает ошибку
"Bad expession: experecting value or variable at
")",1")
file.allfiles("H:musickЗарубежная", file.writeline(yscan,"|")","1")

ошибка в линии 25

Что случилось ? в чем проблема?
"Боишся? Не делай! Сделал? Не бойся!"
Saver
Прапор
 
Сообщений: 63
Зарегистрирован: Ср мар 26, 2003 2:04 pm
Откуда: Санкт-Петербург
Пункты репутации: 0

Сообщение Reuben » Пн мар 31, 2003 12:03 pm

А куда делись одиночные кавычки перед двойными ?
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение Saver » Пн мар 31, 2003 12:28 pm

<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->file.writeline(yscan,"|")","1") <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
Ошибкочно набрал ... (yscan,' " | ' "...
"Боишся? Не делай! Сделал? Не бойся!"
Saver
Прапор
 
Сообщений: 63
Зарегистрирован: Ср мар 26, 2003 2:04 pm
Откуда: Санкт-Петербург
Пункты репутации: 0

Сообщение Reuben » Чт апр 03, 2003 11:38 am

Так работает или нет? Если нет, напиши пожалуйста точно и целком, что пишет, а то я так понять не могу. и проверь, что у тебя проставлено в вкладке Characters в Advanced Setup, как должно писаться значение переменной и как эскейп-последовательность .
В любом случае спасибо за тестирование!
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение Reuben » Вс май 18, 2003 11:29 am

Новая версия скрипта, позволяющего добавить выделенные в TC файлы и папки в текущий плейлист.
Предыдущая версия создавала три временных файла, что явно избыточно. Теперь создается только один файл, плейлист, с которым и запускается плеер. в скрипте испльзуется Quintessential Player, поскольку Winamp я нафиг удалил за полной ненадобностью. Но с Winampом должно работать точно так же.


Код: выделить все
local TempClip  sourcefile sourcefiles targetfiles tfile ksan i tchandle TempClip
tchandle=win.handle("c=TTOTAL_CMD")
;дескриптор окна TC

TempClip= pprofolder ++ "Scripts\cl" ++timesec ++".tmp"
if (file.validpath(TempClip) do
  file.delete (TempClip)
endif
if (clip.get != "") Do
  clip.tofile (TempClip)
  clip.clear
  clip_empty = "0"
Else
  clip_empty = "1"
Endif
;спасаем текущий буфер по заветам Ergo

tfile=pprofolder  ++ "\pproplaylist.m3u"
;в этом файле мы будем создавать плейлист


Win.postMessage(tchandle,0x400+51, 2018)  
;posylaet v  |TC| vnutrennjuju komandu pod nomerom 2018
;Copy Source File(s)with full path, список внутренних команд с номерами
;есть в файле totalcmd.inc

sourcefiles=clip.get ++ "'n"
;теперь у нас в переменной sourcefiles -- список полных путей всех
;выделенных файлов и папок, каждый путь в своей строчке
targetfiles=""

for (i=1;; i=i+1)
   sourcefile= Line(sourcefiles,i)
   if ( sourcefile eq "") Do
 break
;перебираем все пути
   Else
;Если текуший путь -- путь к папке, добавляем в targetfiles все потходяшие
; файлы в ней. Если путь к файлу, то добавляем этот файл, если он
;подходящий.


 if (select(sourcefile,-1) == "\") Do
    file.allfiles(sourcefile, "targetfiles = targetfiles ++ if(select(_file_,-3) == '"ogg'" or select(_file_,-3) == '"mp3'" or select(_file_,-3) == '"m3u'" or select(_file_,-3) == '"pls'",_file_ ++'"''n'")","1")

 Else
 targetfiles = targetfiles ++ if(select(sourcefile,-3) == "ogg" or select(sourcefile,-3) == "mp3" or select(sourcefile,-3) == "m3u" or select(sourcefile,-3) == "pls",sourcefile ++"'n")
   
 Endif
   Endif

endfor

;теперь в targetfiles список всех файлов, которые надо добавить.
;запишем их в плейлист


file.setmaxline(100000)
ksan=file.open(tfile,"w")


file.writeline(ksan,targetfiles)
file.close(ksan)

do("D:\Program Files\QCD 3\QCDPlayer.exe","/add &(tfile)")
;добавляем в текущий плейлист. для того, чтобы заменить плайлист,
; вместо /add пишем /play. Для винампа пишем
;winamp.pls("addfile",tfile)


if (clip_empty == "0") Do
  clip.fromfile (TempClip)
  file.delete (TempClip)
EndIf
;восстанавливаем содержимое буфера обмена
Последний раз редактировалось Reuben Вс май 18, 2003 11:31 am, всего редактировалось 1 раз.
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение Gregory » Вс май 18, 2003 2:45 pm

Вопрос: что делает эта команда

tchandle=win.handle("c=TTOTAL_CMD")

если открыто несколько окон коммандера?

Я обычно перехватываю handle активного окна из-за боязни, что PowerPro перепутает окна.

Вопрос №2. А зачем выбирать подходящие файлы из списка - Winamp сам ведь может разобаться? <!--emo&:)-->Изображение<!--endemo--> И скрипт проще будет <!--emo&:)-->Изображение<!--endemo-->. Тем более, что в подходящие попадут файлы c именами вроде:

this_is_not_mp3

<!--emo&:)-->Изображение<!--endemo-->
Последний раз редактировалось Gregory Вс май 18, 2003 2:55 pm, всего редактировалось 1 раз.
Gregory
Капитан
 
Сообщений: 156
Зарегистрирован: Пн мар 03, 2003 7:28 pm
Откуда: Киев
Пункты репутации: 0

Сообщение Reuben » Пн май 19, 2003 9:33 am

<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->
Вопрос: что делает эта команда

tchandle=win.handle("c=TTOTAL_CMD")
если открыто несколько окон коммандера?
<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->

дескриптор первого в стеке (это ведь стек, я ничего не путаю?)
окна TC. Если окно TC активно то оно, конечно, первое в стеке. Так что это не проблема.
<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->
Вопрос №2. А зачем выбирать подходящие файлы из списка - Winamp сам ведь может разобаться?  <!--emo&:)-->Изображение<!--endemo-->
<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
Не может. То есть если ты ему скажешь: "добавить все файлы в папке", то он откроет только те что нужно. А если "добавить из плейлиста ххх.m3u" то добавит все что там прописано. Это не страшно, играть то он их все равно не будет, проскочит, но портит внешний вид плейлиста <!--emo&:)-->Изображение<!--endemo-->
<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->
Тем более, что в подходящие попадут файлы c именами вроде:

this_is_not_mp3
<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
И тут ты абсолютно прав, халтура.
посему надо пользоваться
Код: выделить все
select(_file_,-4) == '".mp3'"

или даже
Код: выделить все
file.type(_file_)="mp3"
Последний раз редактировалось Reuben Пн май 19, 2003 9:34 am, всего редактировалось 1 раз.
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение dAnIK SeNT » Пн май 19, 2003 12:57 pm

<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->это ведь стек, я ничего не путаю?<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
э... не совсем <!--emo&:)-->Изображение<!--endemo-->. Сам набор окон никак особо не называется, но тот порядок, в котором они расположены, называется Z-order (Z-упорядочивание?). И в Z-order'е активное окно действительно будет самым первым, ты не ошибся.
яНЯЕД ОН СОПЪФЙЕ: Athlon 64 X2 5200+ @2,86GHz / nF 570 SLI (ASUS M2N SLI Deluxe) / 4 Gb RAM (4x1Gb Kingston) / 2,9Tb SATAII (0,50+0,64+0,75+1,00Tb WD) / ASUS 8800 GTS512 / 2x NEC-Optiarc AD-7173 / Thermaltake ToughPower 650W / 2x30W Microlab Solo-2 / 20" LCD Benq FP202W (wide) / openSUSE 11.1 / KDE 4.2.1
<!--coloro:Navy--><span style="color:Navy"><!--/coloro-->оН БЯЕЛ БНОПНЯЮЛ - Б email. б ICQ ОНЪБКЪЧЯЭ ПЮГ Б ОНКЦНДЮ.<!--colorc--></span><!--/colorc-->
dAnIK SeNT
Маршал
 
Сообщений: 5101
Зарегистрирован: Чт мар 28, 2002 7:48 pm
Откуда: яяяп
Пункты репутации: 0

Сообщение Reuben » Пн май 19, 2003 2:53 pm

<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Z-order <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
Звучит красиво. А это что-то значит?
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение dAnIK SeNT » Пн май 19, 2003 7:02 pm

2Reuben
ХЗ <!--emo&:)-->Изображение<!--endemo-->
Спроси у Билли <!--emo&:)-->Изображение<!--endemo-->
яНЯЕД ОН СОПЪФЙЕ: Athlon 64 X2 5200+ @2,86GHz / nF 570 SLI (ASUS M2N SLI Deluxe) / 4 Gb RAM (4x1Gb Kingston) / 2,9Tb SATAII (0,50+0,64+0,75+1,00Tb WD) / ASUS 8800 GTS512 / 2x NEC-Optiarc AD-7173 / Thermaltake ToughPower 650W / 2x30W Microlab Solo-2 / 20" LCD Benq FP202W (wide) / openSUSE 11.1 / KDE 4.2.1
<!--coloro:Navy--><span style="color:Navy"><!--/coloro-->оН БЯЕЛ БНОПНЯЮЛ - Б email. б ICQ ОНЪБКЪЧЯЭ ПЮГ Б ОНКЦНДЮ.<!--colorc--></span><!--/colorc-->
dAnIK SeNT
Маршал
 
Сообщений: 5101
Зарегистрирован: Чт мар 28, 2002 7:48 pm
Откуда: яяяп
Пункты репутации: 0


Вернуться в Windows PowerPro

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

cron