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 

Single Post  Topic: Создание .bar файлов из .txt файла с командами 
Author Message
Andrey_A



PostPosted: Thu Apr 29, 2010 11:53    Post subject: Reply with quote

Loopback при тестирование я обнаружил пару ньюансов
1. Когда скрипт доходит до строк, то дальше не считает
buttonN=
iconicN=0
это есть пустая кнопка (пробел)
2. Можно ли сделать так: считать началом новой панели при нахождении строки button1, [Buttonbar] - не всегда является началом
3. Вести подсчёт для Buttoncount= тоже по номеру строки buttonN

Немножко сам подкорректировал:
Code:
$text = FileRead(@ScriptDir & "\WinBars.txt")

$aBarData = StringSplit($text, "[Buttonbar]", 1)

$nBarCount = 1
For $i = 1 To $aBarData[0]
    $sBarName = StringFormat("bar%03d.bar", $nBarCount)
    $counter = 1
    While 1
        $sss = StringRegExp($aBarData[$i], "(?m)^button" & $counter & "=(.+)$", 1)
        If IsArray($sss) Then
            IniWrite($sBarName, "Buttonbar", "Buttoncount", $counter)
            IniWrite($sBarName, "Buttonbar", "button" & $counter, StringStripWS($sss[0], 3))

            $cmd = StringRegExp($aBarData[$i], "(?m)^cmd" & $counter & "=(.+)$", 1)
            If IsArray($cmd) Then IniWrite($sBarName, "Buttonbar", "cmd" & $counter, StringStripWS($cmd[0], 3))
 
            $menu = StringRegExp($aBarData[$i], "(?m)^menu" & $counter & "=(.+)$", 1)         
            If IsArray($menu) Then IniWrite($sBarName, "Buttonbar", "menu" & $counter, StringStripWS($menu[0], 3))

            $iconic = StringRegExp($aBarData[$i], "(?m)^iconic" & $counter & "=(.+)$", 1)
            If IsArray($iconic) Then IniWrite($sBarName, "Buttonbar", "iconic" & $counter, StringStripWS($iconic[0], 3))

            $param = StringRegExp($aBarData[$i], "(?m)^param" & $counter & "=(.+)$", 1)
            If IsArray($param) Then IniWrite($sBarName, "Buttonbar", "param" & $counter, StringStripWS($param[0], 3))

            $path = StringRegExp($aBarData[$i], "(?m)^path" & $counter & "=(.+)$", 1)
            If IsArray($path) Then IniWrite($sBarName, "Buttonbar", "path" & $counter, StringStripWS($path[0], 3))
        Else
            ExitLoop
        EndIf
        $counter += 1
    Wend
    If $counter > 1 Then
        $nBarCount +=1
    EndIf
Next

И изменил табличный файл, теперь выдаётся более корректный файл с коммандами:
http://rghost.ru/download/1495997/3449b66be0192c13fa6e6f3a9bc3f1ff006de3e8/WinBars.zip
View user's profile Send private message Send e-mail Visit poster's website ICQ Number


Powered by phpBB © 2001, 2005 phpBB Group