Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Работа с файлами панелей инструментов тотал коммндера (http://forum.oszone.net/showthread.php?t=268076)

eus_deus 14-09-2013 15:22 2217747

Работа с файлами панелей инструментов тотал коммндера
 
Вложений: 1
Привет участникам форума!

Имеются файлы примерно такого содержания:
Код:

[Buttonbar]
Buttoncount=15
button1=Wcmicons.dll,385
cmd1=%COMMANDER_PATH%\Programs\Players\VLC\Vlc.exe
iconic1=0
menu1=Открыть файлы/папки в VLC
param1=%P%S
button2=Wcmicons.dll,391
cmd2=%COMMANDER_PATH%\Programs\Players\Media_Player_Classic\MPlayerc.exe
iconic2=0
menu2=Открыть файл в MPlayer Classic
param2=%P%N
button3=
iconic3=0
button4=Wcmicons.dll,388
cmd4=%COMMANDER_PATH%\Programs\Players\Light_Alloy\LA.exe
iconic4=0
menu4=Открыть файлы/папки в Light Alloy
param4=%P%S
button5=Wcmicons.dll,389
cmd5=%COMMANDER_PATH%\Programs\Players\JetAudio\JetAudioPortable.exe
iconic5=0
menu5=Открыть файл/папку в JetAudio
param5=%P%N
button6=Wcmicons.dll,1757
cmd6=%COMMANDER_PATH%\Plugins\wlx\AmpView\AmpView.exe
iconic6=0
menu6=Открыть файлы в AmpView
param6=%P%S
button7=Wcmicons.dll,1742
iconic7=0
iconic8=0
button9=Wcmicons.dll,395
cmd9=%COMMANDER_PATH%\Programs\Players\Flash_Movie_Player\fmp.exe
menu9=Открыть файл в Flash Movie Player
param9=%P%N
button10=Wcmicons.dll,1283
cmd10=%COMMANDER_PATH%\Programs\Players\FlashPlayer\FlashPlayer.exe
menu10=Открыть файл в Flash Player
param10=%P%N
button11=Wcmicons.dll,1284
cmd11=%COMMANDER_PATH%\Programs\Players\Flash_Player_Pro\Flash_Player_Pro.exe
menu11=Открыть файл в Flash Player Pro
param11=%P%N
button12=Wcmicons.dll,402
cmd12=%COMMANDER_PATH%\Programs\Graphics\IrfanView\Plugins\IV_Player.exe
iconic12=0
menu12=Открыть файл в плеере IrfanView
param12=%P%N
button13=Wcmicons.dll,398
cmd13=%COMMANDER_PATH%\Programs\Graphics\XnView\xnview.exe
menu13=Открыть файл в плеере Xn View
param13=%P%N
button14=Wcmicons.dll,979
cmd14=%COMMANDER_PATH%\Programs\Players\KMPlayer\KMPlayerPortable.exe
menu14=Открыть файлы в KMPlayer
param14=%P%S
button15=Wcmicons.dll,396
cmd15=%COMMANDER_PATH%\Programs\Audio\Teen_Spirit\jaangle.exe
param15=%P%N
menu15=Открыть файл в плеере TeenSpirit
iconic15=0
iconic13=0
iconic9=0
cmd7=%COMMANDER_PATH%\Programs\Players\Ubi\UbiquitousPlayer.exe
param7=
path7=
menu7=Плеер Ubiquitous

Надо - иметь диалог выбора файла, чтобы при открытии открывался файл в текстовом поле (рабочий пример прилагаю) и по нажатию кнопки чтобы проходила конвертация к виду:
Код:

menu1#!#button1#!#cmd1#!#param1
То есть на выходе надо получить такую же строку, как я писал в этой теме http://forum.oszone.net/thread-267794.html
То есть
Код:

MENUITEM menu1#!#button1#!#cmd1#!#param1
Button1 - зависит от условия, есть ли в строке wcmicons.dll

Рабочий пример
Код:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiEdit.au3>
#Region ### START Koda GUI section ###
$Form1 = GUICreate("Form1", 813, 453, 435, 124)
$Edit1 = GUICtrlCreateEdit("", 8, 8, 409, 401)
GUICtrlSetData(-1, "")
$Edit2 = GUICtrlCreateEdit("", 424, 8, 385, 401)
GUICtrlSetData(-1, "")
$Button1 = GUICtrlCreateButton("Button1", 8, 424, 113, 25)
$Button2 = GUICtrlCreateButton("Button2", 320, 424, 193, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
Case $Button1
_FileOpen()
Case $Button2
_Convert()
    EndSwitch
WEnd

Func _FileOpen()
  $h_file=FileOpenDialog ( "Открыть bar файл", @ScriptDir, "Файлы панелей Total Commander (*.bar)")
  $h_fileread=FileRead($h_file)
  GUICtrlSetData ($Edit1,$h_fileread)
EndFunc

Func _Convert()

EndFunc

Bar файл для экспериментов в архиве в прикрепленном файле. Может, что забыл уточнить, хотя вроде все

Creat0R 14-09-2013 19:39 2217851

Вот это я понимаю оформление темы! :good:

Для этого примера нужна библиотека IniString:

Код:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIEdit.au3>

#include "IniString.au3"

$hGUI = GUICreate('Form', 813, 453, 435, 124)
$iBarIn_Edit = GUICtrlCreateEdit('', 8, 8, 409, 401)
$iBarOut_Edit = GUICtrlCreateEdit('', 424, 8, 385, 401)
$iReadFile_Bttn = GUICtrlCreateButton('Read file', 8, 424, 113, 25)
$iConvert_Bttn = GUICtrlCreateButton('Convert', 320, 424, 193, 25)

GUISetState(@SW_SHOW)

While 1
    $iMsg = GUIGetMsg()

    Switch $iMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $iReadFile_Bttn
            _OpenBarFile()
        Case $iConvert_Bttn
            $sItems = _ConvertBarFile('MENUITEM', '#!#', 'wcmicons.dll')
            GUICtrlSetData($iBarOut_Edit, $sItems)
    EndSwitch
WEnd

Func _OpenBarFile()
    Local $sFile = FileOpenDialog("Открыть bar файл", @ScriptDir, "Файлы панелей Total Commander (*.bar)")

    If Not @error Then
        GUICtrlSetData($iBarIn_Edit, FileRead($sFile))
    EndIf
EndFunc

Func _ConvertBarFile($sMenuHeader = 'MENUITEM', $sDelim = '#!#', $sInStrCond = 'wcmicons.dll')
    Local $sRead = GUICtrlRead($iBarIn_Edit)
    Local $iCount = Int(_IniString_Read($sRead, 'Buttonbar', 'buttoncount', 0))

    Local $sItems = ''

    For $i = 1 To $iCount
        Dim $aItem[4] = _
            [ _
                _IniString_Read($sRead, 'Buttonbar', 'menu' & $i, ''), _ ;Menu
                _IniString_Read($sRead, 'Buttonbar', 'button' & $i, ''), _ ;Button
                _IniString_Read($sRead, 'Buttonbar', 'cmd' & $i, ''), _ ;Cmd
                _IniString_Read($sRead, 'Buttonbar', 'param' & $i, '') _ ;Param
            ]

        $sLine = $sMenuHeader & ' '

        For $j = 0 To 3
            If $j = 1 And StringInStr($aItem[$j], $sInStrCond) Then
                $aItem[$j] = StringRegExpReplace($aItem[$j], '.*?(-?\d+)', '\1')
            EndIf

            If $aItem[$j] <> '' Then
                If $j > 0 And $aItem[$j-1] <> '' Then
                    $sLine &= $sDelim & $aItem[$j]
                Else
                    $sLine &= $aItem[$j]
                EndIf
            EndIf
        Next

        $sItems &= $sLine & @CRLF
    Next

    Return $sItems
EndFunc


Creat0R 14-09-2013 19:50 2217859

Цитата:

Цитата eus_deus
Скажи не по теме »

Не скажу, именно потому что не по теме :).
Пиши в тему по этой утилите.

Цитата:

Цитата eus_deus
Это ее по ходу в справке нет? »

В стандартной нет, но я вроде указал ссылку по которой можно скачать библиотеку.

Iska 14-09-2013 19:53 2217863

Цитата:

Цитата Creat0R
Вот это я понимаю оформление темы! »

Поддержу!


Цитата:

Цитата eus_deus
Это ее по ходу в справке нет? »

Это «внешняя» UDF, разработанная участником форума и автором Сообщества. В комплект поставки AutoIt она не входит, потому её описания и нет в справке.

eus_deus 14-09-2013 19:54 2217865

Цитата:

Цитата Creat0R
В стандартной нет, но я вроде указал ссылку по которой можно скачать библиотеку. »

Библиотека есть, я имел в виду саму справку по ее функциям - не нашел ее в списке UDF. А так - пример рабочий, теперь удалить лишние строки с результата, и все ок
Цитата:

Цитата Creat0R
Не скажу, именно потому что не по теме . »

Не принципиально - можно же пользоваться некомпилированным скриптом

Цитата:

Цитата Iska
потому её описания и нет в справке »

Просто в моей справке куча UDF функций есть - отдельный раздел для них, а этой нет, потому и спросил

вообще, смотрю, чем дальше в лес, тем больше дров)) в начале хоть что то понимал в коде, а после сегодняшнего - самооценка резко упала))

eus_deus 14-09-2013 20:25 2217878

офигеть... простого удаления строки не предусмотрено... ладно, это уже оффтоп

Iska 14-09-2013 20:27 2217880

Цитата:

Цитата eus_deus
Просто в моей справке куча UDF функций есть - отдельный раздел для них, а этой нет, потому и спросил »

То считаются как бы «стандартными» UDF, входящими в поставку. Потому на них есть справка.

Цитата:

Цитата eus_deus
вообще, смотрю, чем дальше в лес, тем больше дров)) в начале хоть что то понимал в коде, а после сегодняшнего - самооценка резко упала)) »

Всё придёт. Не боги горшки обжигают. Главное — не останавливаться.

eus_deus 14-09-2013 20:55 2217887

Iska, да я скоро вешаться стану с этими регулярными выражениями. Сталкиваюсь с ними все чаще, а понять ума не хватает. Вот в RegExp все вычисляется нормально, вставляю в свой код - нифиига. Наверное, не туда вставляю))

eus_deus 14-09-2013 22:00 2217919

Вопрос таки открыт еще. В результате работы скрипта получаю код
Код:

[Default]
Delimeters=#!#
MENUITEM Выбор панели инструментов#!#1071#!#%COMMANDER_PATH%\Bar\001_Panel_Panels.bar
MENUITEM
MENUITEM Системное меню#!#1130#!#%COMMANDER_PATH%\Utilities\TotalCom\TCmenu\TCmenu_20\TCmenu.exe#!#%%COMMANDER_PATH%%\BAR\034_Computers.bar -N %n -P %p
MENUITEM Меню часто используемых программ#!#680#!#%COMMANDER_PATH%\BAR\043_Osnovnye_Programms.bar
MENUITEM Дополнительные часто используемые инструменты#!#322#!#%COMMANDER_PATH%\BAR\038_Panel_Tools_TC.bar
MENUITEM
MENUITEM Обновить панели CTRL + R#!#725#!#%COMMANDER_PATH%\TCIMG.exe#!#tcimg=50~~$cm312~~$cm540
MENUITEM Назад ALT + <-#!#58#!#cm_GotoPreviousDir
MENUITEM Вперёд ALT + ->#!#59#!#cm_GotoNextDir
MENUITEM Переименовать...  F2 или SHIFT + F6#!#1737#!#cm_RenameOnly
MENUITEM Показать все файлы без подкаталогов  CTRL + B#!#150#!#cm_DirBranch
MENUITEM Выделить файлы по расширению  CTRL+ SHIFT+ A#!#671#!#cm_SelectCurrentExtension
MENUITEM Выделить всё  CTRL+ A  (а так же инвертировать NUM*)#!#37#!#cm_ExchangeSelection
MENUITEM Снять всё выделение  CTRL+K или CTRL+NUM -#!#1733#!#cm_ClearAll
MENUITEM Групповое Переименование  CTRL+ M#!#11#!#cm_MultiRenameFiles
MENUITEM Показать скрытые/системные элементы CTRL+ H#!#102#!#cm_SwitchHidSys
MENUITEM Быстрый просмотр любого файла в другой панели CTRL+ Q#!#147#!#cm_SrcQuickview
MENUITEM Упаковать выделенные файлы\папки в соседнюю панель в различные форматы  ALT + F5#!#650#!#cm_PackFiles
MENUITEM Распаковать выделенные архивы ALT + F9#!#285#!#cm_UnpackFiles
MENUITEM Просмотр файла под курсором в отдельном потоке  WIN + F3#!#289#!#%COMMANDER_EXE% /S=L#!#%Z %P%N
MENUITEM Быстрый просмотр Mht, Html, Chm, Xml, Txt, Xps, Mspx, Графика, Папки... Shift + F3#!#1910#!#hh#!#-800 %V
MENUITEM Меню копирования в буфер обмена...#!#1515#!#%COMMANDER_PATH%\BAR\142_Bufer.bar
MENUITEM Свойства Объекта под курсором...  ALT+ ENTER#!#4#!#cm_Properties
MENUITEM Показать Размеры Папок  ALT+ SHIFT+ ENTER#!#724#!#cm_CountDirContent
MENUITEM Просмотр Эскизов  CTRL+ SHIFT+ F1#!#136#!#cm_SrcThumbs
MENUITEM Открыть Новую Вкладку  CTRL + T#!#721#!#cm_OpenNewTab
MENUITEM Инструменты поиска#!#212#!#%COMMANDER_PATH%\BAR\218_SearchFor.bar
MENUITEM
MENUITEM Просмотр эскизов - открывается файл под курсором#!#1317#!#%COMMANDER_PATH%\BAR\044_Viiewers.bar
MENUITEM
MENUITEM Панель специальных инструментов TC Image#!#1243#!#%COMMANDER_PATH%\Bar\028_Additional_Tools.bar
MENUITEM Инструменты для работы с фото#!#1395#!#%COMMANDER_PATH%\Bar\258_Photoinstrument.bar
MENUITEM Мои инструменты#!#2#!#%COMMANDER_PATH%\MENUIMG.exe#!#%Z%%COMMANDER_PATH%%\BAR\260_my_bar.bar||#podarok||$Мои~~инструменты||&v_podarok!!Частые~~программы
MENUITEM Программирование#!#53#!#%COMMANDER_PATH%\MENUIMG.exe#!#%Z%%COMMANDER_PATH%%\BAR\261_programming.bar||#RED||$Программирование
MENUITEM Запуск моих программ#!#%COMMANDER_PATH%\TCIMG.exe#!#%COMMANDER_PATH%\TCIMG.exe#!#tcimg=$tmtm_StartMyPrograms
MENUITEM Закачать по ссылке с буфера#!#891#!#%COMMANDER_PATH%\TCIMG.exe#!#downl="C:\Users\asmadeus\Downloads\Total\"!!1||cliplist
MENUITEM -2
MENUITEM Украшение системы#!#1183#!#%COMMANDER_PATH%\BAR\178_Ornament.bar
MENUITEM Системное меню#!#1163#!#%COMMANDER_PATH%\Utilities\TotalCom\TCmenu\TCmenu_16\TCmenu.exe#!#%%COMMANDER_PATH%%\BAR\176_Utility_Tools_2.bar -N %n -P %p
MENUITEM Калькуляторы, Подсчёты, Вычисления#!#1189#!#%COMMANDER_PATH%\BAR\177_Utility_Tools_3.bar
MENUITEM Восстановление паролей...#!#1182#!#%COMMANDER_PATH%\BAR\179_Passwords_Keys.bar
MENUITEM Просмотрщики файлов#!#1206#!#%COMMANDER_PATH%\BAR\206_Viewers_02.bar
MENUITEM Консольные утилиты#!#114#!#%COMMANDER_PATH%\Bar\244_Console.bar
MENUITEM Virtual Panel - временная панель, позволяет хранить ссылки файлы#!#2058#!#%COMMANDER_PATH%\BAR\221_Virtual_Panel.bar
MENUITEM Панель дополнительных плагинов#!#781#!#%COMMANDER_PATH%\Bar\083_Plugins.bar
MENUITEM
MENUITEM Поиск и удаление дубликатов - CloneRemover Pro#!#897#!#%COMMANDER_PATH%\Utilities\Seach\CloneRemover\CloneRemover.exe
MENUITEM Безвозвратное затирание пустых мест нулями Kremlin Secdel#!#881#!#%COMMANDER_PATH%\Programs\Arhive\Kremlin\Secdel.exe#!#%P%N
MENUITEM Выключение, сон, перезагрузка компьютера, расписание со множествами настроек - PowerOff#!#941#!#%COMMANDER_PATH%\Utilities\Systems\PowerOfff\PowerOfff.exe
MENUITEM
MENUITEM Настройка Wcx плагинов TweakWcx#!#1172#!#%COMMANDER_PATH%\Utilities\TotalCom\TweakWcx\TweakWcx.exe
MENUITEM Настройка Плагинов Total Com... Plugman#!#781#!#%COMMANDER_PATH%\Utilities\TotalCom\TcPlugMan\PlugMan.exe
MENUITEM Открытие файлов через ChoiceEditor#!#1117#!#%COMMANDER_PATH%\Utilities\TotalCom\ChoiceEditor\ChoiceEditor.exe
MENUITEM Просмотр Universal Viewer#!#1169#!#%COMMANDER_PATH%\Utilities\Viewers\Universal_Viewer\Viewer.exe#!#%P%N
MENUITEM Просмотр TCUPULTIMATE#!#1171#!#%COMMANDER_PATH%\Utilities\TotalCom\TCUPULTIMATE\TCUPULTIMATE.exe#!#%P%N
MENUITEM Просмотр FileListViewer#!#1173#!#%COMMANDER_PATH%\Utilities\Viewers\FileListViewer\FileListViewer.exe#!#%P%N
MENUITEM Разблокировка\удаление файлов\папок под курсором с Unlocker CTRL+ALT+END#!#1031#!#%COMMANDER_PATH%\Utilities\Delete\Unlocker\UnlockerPortable.exe#!#%P%N /S
MENUITEM Archivarius3000#!#1268#!#%COMMANDER_PATH%\Utilities\Seach\Archivarius3000\Archivarius3000.exe
MENUITEM Конвертер Байты Кб Мб Гб#!#693#!#%COMMANDER_PATH%\Utilities\Calculators\Byte_Conv\Byte_Conv.exe
MENUITEM Редактирование  LNK файлов LinkEditor#!#1311#!#%COMMANDER_PATH%\Plugins\wlx\LinkInfo\LinkEditor.exe#!#%P%N
MENUITEM Копирование выделенного в ДРУГУЮ панель… TeraCopy#!#462#!#%COMMANDER_PATH%\Utilities\Systems\TeraCopy\TeraCopy.exe#!#Copy *"%L" "%T"
MENUITEM Копирование выделенных файлов\папок в соседнюю панель#!#1744#!#%COMMANDER_PATH%\TCIMG.exe#!#copys=%Z%L||%t
MENUITEM Перемещение выделенных файлов/папок без запроса Win+K#!#1712#!#%COMMANDER_PATH%\TCIMG.exe#!#moves=%L||%t
MENUITEM !!! Удаление выделенных файлов\папок без запроса !!!#!#602#!#%COMMANDER_PATH%\TCIMG.exe#!#delss=%L||1
MENUITEM Выбор панели инструментов#!#1071#!#%COMMANDER_PATH%\Bar\001_Panel_Panels.bar
MENUITEM
MENUITEM Системное меню#!#1130#!#%COMMANDER_PATH%\Utilities\TotalCom\TCmenu\TCmenu_20\TCmenu.exe#!#%%COMMANDER_PATH%%\BAR\034_Computers.bar -N %n -P %p
MENUITEM Меню часто используемых программ#!#680#!#%COMMANDER_PATH%\BAR\043_Osnovnye_Programms.bar
MENUITEM Дополнительные часто используемые инструменты#!#322#!#%COMMANDER_PATH%\BAR\038_Panel_Tools_TC.bar
MENUITEM
MENUITEM Обновить панели CTRL + R#!#725#!#%COMMANDER_PATH%\TCIMG.exe#!#tcimg=50~~$cm312~~$cm540
MENUITEM Назад ALT + <-#!#58#!#cm_GotoPreviousDir
MENUITEM Вперёд ALT + ->#!#59#!#cm_GotoNextDir
MENUITEM Переименовать...  F2 или SHIFT + F6#!#1737#!#cm_RenameOnly
MENUITEM Показать все файлы без подкаталогов  CTRL + B#!#150#!#cm_DirBranch
MENUITEM Выделить файлы по расширению  CTRL+ SHIFT+ A#!#671#!#cm_SelectCurrentExtension
MENUITEM Выделить всё  CTRL+ A  (а так же инвертировать NUM*)#!#37#!#cm_ExchangeSelection
MENUITEM Снять всё выделение  CTRL+K или CTRL+NUM -#!#1733#!#cm_ClearAll
MENUITEM Групповое Переименование  CTRL+ M#!#11#!#cm_MultiRenameFiles
MENUITEM Показать скрытые/системные элементы CTRL+ H#!#102#!#cm_SwitchHidSys
MENUITEM Быстрый просмотр любого файла в другой панели CTRL+ Q#!#147#!#cm_SrcQuickview
MENUITEM Упаковать выделенные файлы\папки в соседнюю панель в различные форматы  ALT + F5#!#650#!#cm_PackFiles
MENUITEM Распаковать выделенные архивы ALT + F9#!#285#!#cm_UnpackFiles
MENUITEM Просмотр файла под курсором в отдельном потоке  WIN + F3#!#289#!#%COMMANDER_EXE% /S=L#!#%Z %P%N
MENUITEM Быстрый просмотр Mht, Html, Chm, Xml, Txt, Xps, Mspx, Графика, Папки... Shift + F3#!#1910#!#hh#!#-800 %V
MENUITEM Меню копирования в буфер обмена...#!#1515#!#%COMMANDER_PATH%\BAR\142_Bufer.bar
MENUITEM Свойства Объекта под курсором...  ALT+ ENTER#!#4#!#cm_Properties
MENUITEM Показать Размеры Папок  ALT+ SHIFT+ ENTER#!#724#!#cm_CountDirContent
MENUITEM Просмотр Эскизов  CTRL+ SHIFT+ F1#!#136#!#cm_SrcThumbs
MENUITEM Открыть Новую Вкладку  CTRL + T#!#721#!#cm_OpenNewTab
MENUITEM Инструменты поиска#!#212#!#%COMMANDER_PATH%\BAR\218_SearchFor.bar
MENUITEM
MENUITEM Просмотр эскизов - открывается файл под курсором#!#1317#!#%COMMANDER_PATH%\BAR\044_Viiewers.bar
MENUITEM
MENUITEM Панель специальных инструментов TC Image#!#1243#!#%COMMANDER_PATH%\Bar\028_Additional_Tools.bar
MENUITEM Инструменты для работы с фото#!#1395#!#%COMMANDER_PATH%\Bar\258_Photoinstrument.bar
MENUITEM Мои инструменты#!#2#!#%COMMANDER_PATH%\MENUIMG.exe#!#%Z%%COMMANDER_PATH%%\BAR\260_my_bar.bar||#podarok||$Мои~~инструменты||&v_podarok!!Частые~~программы
MENUITEM Программирование#!#53#!#%COMMANDER_PATH%\MENUIMG.exe#!#%Z%%COMMANDER_PATH%%\BAR\261_programming.bar||#RED||$Программирование
MENUITEM Запуск моих программ#!#%COMMANDER_PATH%\TCIMG.exe#!#%COMMANDER_PATH%\TCIMG.exe#!#tcimg=$tmtm_StartMyPrograms
MENUITEM Закачать по ссылке с буфера#!#891#!#%COMMANDER_PATH%\TCIMG.exe#!#downl="C:\Users\asmadeus\Downloads\Total\"!!1||cliplist
MENUITEM -2
MENUITEM Украшение системы#!#1183#!#%COMMANDER_PATH%\BAR\178_Ornament.bar
MENUITEM Системное меню#!#1163#!#%COMMANDER_PATH%\Utilities\TotalCom\TCmenu\TCmenu_16\TCmenu.exe#!#%%COMMANDER_PATH%%\BAR\176_Utility_Tools_2.bar -N %n -P %p
MENUITEM Калькуляторы, Подсчёты, Вычисления#!#1189#!#%COMMANDER_PATH%\BAR\177_Utility_Tools_3.bar
MENUITEM Восстановление паролей...#!#1182#!#%COMMANDER_PATH%\BAR\179_Passwords_Keys.bar
MENUITEM Просмотрщики файлов#!#1206#!#%COMMANDER_PATH%\BAR\206_Viewers_02.bar
MENUITEM Консольные утилиты#!#114#!#%COMMANDER_PATH%\Bar\244_Console.bar
MENUITEM Virtual Panel - временная панель, позволяет хранить ссылки файлы#!#2058#!#%COMMANDER_PATH%\BAR\221_Virtual_Panel.bar
MENUITEM Панель дополнительных плагинов#!#781#!#%COMMANDER_PATH%\Bar\083_Plugins.bar
MENUITEM
MENUITEM Поиск и удаление дубликатов - CloneRemover Pro#!#897#!#%COMMANDER_PATH%\Utilities\Seach\CloneRemover\CloneRemover.exe
MENUITEM Безвозвратное затирание пустых мест нулями Kremlin Secdel#!#881#!#%COMMANDER_PATH%\Programs\Arhive\Kremlin\Secdel.exe#!#%P%N
MENUITEM Выключение, сон, перезагрузка компьютера, расписание со множествами настроек - PowerOff#!#941#!#%COMMANDER_PATH%\Utilities\Systems\PowerOfff\PowerOfff.exe
MENUITEM
MENUITEM Настройка Wcx плагинов TweakWcx#!#1172#!#%COMMANDER_PATH%\Utilities\TotalCom\TweakWcx\TweakWcx.exe
MENUITEM Настройка Плагинов Total Com... Plugman#!#781#!#%COMMANDER_PATH%\Utilities\TotalCom\TcPlugMan\PlugMan.exe
MENUITEM Открытие файлов через ChoiceEditor#!#1117#!#%COMMANDER_PATH%\Utilities\TotalCom\ChoiceEditor\ChoiceEditor.exe
MENUITEM Просмотр Universal Viewer#!#1169#!#%COMMANDER_PATH%\Utilities\Viewers\Universal_Viewer\Viewer.exe#!#%P%N
MENUITEM Просмотр TCUPULTIMATE#!#1171#!#%COMMANDER_PATH%\Utilities\TotalCom\TCUPULTIMATE\TCUPULTIMATE.exe#!#%P%N
MENUITEM Просмотр FileListViewer#!#1173#!#%COMMANDER_PATH%\Utilities\Viewers\FileListViewer\FileListViewer.exe#!#%P%N
MENUITEM Разблокировка\удаление файлов\папок под курсором с Unlocker CTRL+ALT+END#!#1031#!#%COMMANDER_PATH%\Utilities\Delete\Unlocker\UnlockerPortable.exe#!#%P%N /S
MENUITEM Archivarius3000#!#1268#!#%COMMANDER_PATH%\Utilities\Seach\Archivarius3000\Archivarius3000.exe
MENUITEM Конвертер Байты Кб Мб Гб#!#693#!#%COMMANDER_PATH%\Utilities\Calculators\Byte_Conv\Byte_Conv.exe
MENUITEM Редактирование  LNK файлов LinkEditor#!#1311#!#%COMMANDER_PATH%\Plugins\wlx\LinkInfo\LinkEditor.exe#!#%P%N
MENUITEM Копирование выделенного в ДРУГУЮ панель… TeraCopy#!#462#!#%COMMANDER_PATH%\Utilities\Systems\TeraCopy\TeraCopy.exe#!#Copy *"%L" "%T"
MENUITEM Копирование выделенных файлов\папок в соседнюю панель#!#1744#!#%COMMANDER_PATH%\TCIMG.exe#!#copys=%Z%L||%t
MENUITEM Перемещение выделенных файлов/папок без запроса Win+K#!#1712#!#%COMMANDER_PATH%\TCIMG.exe#!#moves=%L||%t
MENUITEM !!! Удаление выделенных файлов\папок без запроса !!!#!#602#!#%COMMANDER_PATH%\TCIMG.exe#!#delss=%L||1
MENUITEM Выбор панели инструментов#!#1071#!#%COMMANDER_PATH%\Bar\001_Panel_Panels.bar
MENUITEM
MENUITEM Системное меню#!#1130#!#%COMMANDER_PATH%\Utilities\TotalCom\TCmenu\TCmenu_20\TCmenu.exe#!#%%COMMANDER_PATH%%\BAR\034_Computers.bar -N %n -P %p
MENUITEM Меню часто используемых программ#!#680#!#%COMMANDER_PATH%\BAR\043_Osnovnye_Programms.bar
MENUITEM Дополнительные часто используемые инструменты#!#322#!#%COMMANDER_PATH%\BAR\038_Panel_Tools_TC.bar
MENUITEM
MENUITEM Обновить панели CTRL + R#!#725#!#%COMMANDER_PATH%\TCIMG.exe#!#tcimg=50~~$cm312~~$cm540
MENUITEM Назад ALT + <-#!#58#!#cm_GotoPreviousDir
MENUITEM Вперёд ALT + ->#!#59#!#cm_GotoNextDir
MENUITEM Переименовать...  F2 или SHIFT + F6#!#1737#!#cm_RenameOnly
MENUITEM Показать все файлы без подкаталогов  CTRL + B#!#150#!#cm_DirBranch
MENUITEM Выделить файлы по расширению  CTRL+ SHIFT+ A#!#671#!#cm_SelectCurrentExtension
MENUITEM Выделить всё  CTRL+ A  (а так же инвертировать NUM*)#!#37#!#cm_ExchangeSelection
MENUITEM Снять всё выделение  CTRL+K или CTRL+NUM -#!#1733#!#cm_ClearAll
MENUITEM Групповое Переименование  CTRL+ M#!#11#!#cm_MultiRenameFiles
MENUITEM Показать скрытые/системные элементы CTRL+ H#!#102#!#cm_SwitchHidSys
MENUITEM Быстрый просмотр любого файла в другой панели CTRL+ Q#!#147#!#cm_SrcQuickview
MENUITEM Упаковать выделенные файлы\папки в соседнюю панель в различные форматы  ALT + F5#!#650#!#cm_PackFiles
MENUITEM Распаковать выделенные архивы ALT + F9#!#285#!#cm_UnpackFiles
MENUITEM Просмотр файла под курсором в отдельном потоке  WIN + F3#!#289#!#%COMMANDER_EXE% /S=L#!#%Z %P%N
MENUITEM Быстрый просмотр Mht, Html, Chm, Xml, Txt, Xps, Mspx, Графика, Папки... Shift + F3#!#1910#!#hh#!#-800 %V
MENUITEM Меню копирования в буфер обмена...#!#1515#!#%COMMANDER_PATH%\BAR\142_Bufer.bar
MENUITEM Свойства Объекта под курсором...  ALT+ ENTER#!#4#!#cm_Properties
MENUITEM Показать Размеры Папок  ALT+ SHIFT+ ENTER#!#724#!#cm_CountDirContent
MENUITEM Просмотр Эскизов  CTRL+ SHIFT+ F1#!#136#!#cm_SrcThumbs
MENUITEM Открыть Новую Вкладку  CTRL + T#!#721#!#cm_OpenNewTab
MENUITEM Инструменты поиска#!#212#!#%COMMANDER_PATH%\BAR\218_SearchFor.bar
MENUITEM
MENUITEM Просмотр эскизов - открывается файл под курсором#!#1317#!#%COMMANDER_PATH%\BAR\044_Viiewers.bar
MENUITEM
MENUITEM Панель специальных инструментов TC Image#!#1243#!#%COMMANDER_PATH%\Bar\028_Additional_Tools.bar
MENUITEM Инструменты для работы с фото#!#1395#!#%COMMANDER_PATH%\Bar\258_Photoinstrument.bar
MENUITEM Мои инструменты#!#2#!#%COMMANDER_PATH%\MENUIMG.exe#!#%Z%%COMMANDER_PATH%%\BAR\260_my_bar.bar||#podarok||$Мои~~инструменты||&v_podarok!!Частые~~программы
MENUITEM Программирование#!#53#!#%COMMANDER_PATH%\MENUIMG.exe#!#%Z%%COMMANDER_PATH%%\BAR\261_programming.bar||#RED||$Программирование
MENUITEM Запуск моих программ#!#%COMMANDER_PATH%\TCIMG.exe#!#%COMMANDER_PATH%\TCIMG.exe#!#tcimg=$tmtm_StartMyPrograms
MENUITEM Закачать по ссылке с буфера#!#891#!#%COMMANDER_PATH%\TCIMG.exe#!#downl="C:\Users\asmadeus\Downloads\Total\"!!1||cliplist
MENUITEM -2
MENUITEM Украшение системы#!#1183#!#%COMMANDER_PATH%\BAR\178_Ornament.bar
MENUITEM Системное меню#!#1163#!#%COMMANDER_PATH%\Utilities\TotalCom\TCmenu\TCmenu_16\TCmenu.exe#!#%%COMMANDER_PATH%%\BAR\176_Utility_Tools_2.bar -N %n -P %p
MENUITEM Калькуляторы, Подсчёты, Вычисления#!#1189#!#%COMMANDER_PATH%\BAR\177_Utility_Tools_3.bar
MENUITEM Восстановление паролей...#!#1182#!#%COMMANDER_PATH%\BAR\179_Passwords_Keys.bar
MENUITEM Просмотрщики файлов#!#1206#!#%COMMANDER_PATH%\BAR\206_Viewers_02.bar
MENUITEM Консольные утилиты#!#114#!#%COMMANDER_PATH%\Bar\244_Console.bar
MENUITEM Virtual Panel - временная панель, позволяет хранить ссылки файлы#!#2058#!#%COMMANDER_PATH%\BAR\221_Virtual_Panel.bar
MENUITEM Панель дополнительных плагинов#!#781#!#%COMMANDER_PATH%\Bar\083_Plugins.bar
MENUITEM
MENUITEM Поиск и удаление дубликатов - CloneRemover Pro#!#897#!#%COMMANDER_PATH%\Utilities\Seach\CloneRemover\CloneRemover.exe
MENUITEM Безвозвратное затирание пустых мест нулями Kremlin Secdel#!#881#!#%COMMANDER_PATH%\Programs\Arhive\Kremlin\Secdel.exe#!#%P%N
MENUITEM Выключение, сон, перезагрузка компьютера, расписание со множествами настроек - PowerOff#!#941#!#%COMMANDER_PATH%\Utilities\Systems\PowerOfff\PowerOfff.exe

Подчеркнутые строки надо просто удалить в поле результата

Iska 14-09-2013 22:48 2217937

Цитата:

Цитата eus_deus
Iska, да я скоро вешаться стану с этими регулярными выражениями. Сталкиваюсь с ними все чаще, а понять ума не хватает. Вот в RegExp все вычисляется нормально, вставляю в свой код - нифиига. »

Оффтопиком: вот у меня лежит в Избранном для памяти:
Цитата:

К Регулярное выражение: замена четвёртого вхождения подстроки:
Код:

"на оборотной стороне ворот втроая строка" -replace "((?:.*?ро.*?){3})ро(.*)",'$1ор$2'

Когда видишь результат — думаешь: «Ну, как же это я не смог сообразить?!» Однако, не смог.


По регулярным выражениям — ищите: Регулярные выражения - Джеффри Фридл.

eus_deus 15-09-2013 11:43 2218139

Цитата:

Цитата Iska
ищите: Регулярные выражения - Джеффри Фридл »

нашел. читаю. с начала, как самый новенький в вопросе))

eus_deus 15-09-2013 14:50 2218228

Прямо мистика. В regexp (программа) регулярное выражение работает, выдает ту строку, что надо. а в скрипте - нет

eus_deus 15-09-2013 16:24 2218280

Если кому интересно, то решил вопрос такой заменой строк. Функция
Код:

Func _zamena()
$sData = GUICtrlRead($Edit2)
$sData = StringRegExpReplace($sData, '(?m)^MENUITEM\s\r\n', '')
$sData = StringRegExpReplace($sData, '(?m)^MENUITEM\s\-2\r\n','')
GUICtrlSetData($Edit2, $sData)
EndFunc

Согласен, регулярные выражения далеки от идеала, но как же я был рад, когда увидел, что они работают

Creat0R 15-09-2013 21:36 2218451

Цитата:

Цитата eus_deus
решил вопрос такой заменой строк »

„Мудрец не попадёт в ситуацию, из которой умный найдёт выход!“...

Другими словами, лучше предотвратить подобную запись, чем потом её исправлять:

Код:

...

Func _ConvertBarFile($sMenuHeader = 'MENUITEM', $sDelim = '#!#', $sInStrCond = 'wcmicons.dll')
    Local $sRead = GUICtrlRead($iBarIn_Edit)
    Local $iCount = Int(_IniString_Read($sRead, 'Buttonbar', 'buttoncount', 0))

    Local $sItems = ''

    For $i = 1 To $iCount
        Dim $aItem[4] = _
                [ _
                _IniString_Read($sRead, 'Buttonbar', 'menu' & $i, ''), _ ;Menu
                _IniString_Read($sRead, 'Buttonbar', 'button' & $i, ''), _ ;Button
                _IniString_Read($sRead, 'Buttonbar', 'cmd' & $i, ''), _ ;Cmd
                _IniString_Read($sRead, 'Buttonbar', 'param' & $i, '') _ ;Param
                ]

        $sLine = $sMenuHeader & ' '

        For $j = 0 To 3
            If $j = 1 And StringInStr($aItem[$j], $sInStrCond) Then
                $aItem[$j] = StringRegExpReplace($aItem[$j], '.*?(-?\d+)', '\1')
            EndIf

            If $aItem[$j] <> '' Then
                If $j > 0 And $aItem[$j - 1] <> '' Then
                    $sLine &= $sDelim & $aItem[$j]
                Else
                    $sLine &= $aItem[$j]
                EndIf
            EndIf
        Next

        If $sLine = $sMenuHeader & ' ' Or Not StringInStr($sLine, $sDelim) Then
            ContinueLoop
        EndIf

        $sItems &= $sLine & @CRLF
    Next

    Return $sItems
EndFunc


eus_deus 16-09-2013 17:43 2218879

Цитата:

Цитата Creat0R
Другими словами, лучше предотвратить подобную запись, чем потом её исправлять: »

ну тебе может и проще, но я в твоем коде пока еще путаюсь, так что и пробовал по своему

Creat0R 16-09-2013 19:10 2218920

Цитата:

Цитата eus_deus
тебе может и проще »

Я ничего не говорил о простоте, я писал что это лучше, более правильно.

Цитата:

Цитата eus_deus
я в твоем коде пока еще путаюсь, так что и пробовал по своему »

Я же не в качестве претензии или что то, я просто указал на более грамотное решение проблеме (и кстати это стоит взять на вооружение, не только для данного случая).

eus_deus 16-09-2013 20:23 2218958

Creat0R, я никаких претензий не имею.Вообще благодарен тебе в частности и форуму в общем, что даете мне ответы на мои иногда бредовые вопросы

Цитата:

Цитата Creat0R
If $sLine = $sMenuHeader & ' ' Or Not StringInStr($sLine, $sDelim) Then
ContinueLoop
EndIf »

это получается только эти строки отвечают за нужное мне условие? что то наподобие - "если строка равна "MENUITEM " или строка не содержит $Delim, то перейти к следующей строке"? я правильно понял?

Creat0R 16-09-2013 23:59 2219066

Цитата:

Цитата eus_deus
это получается только эти строки отвечают за нужное мне условие? что то наподобие - "если строка равна "MENUITEM " или строка не содержит $Delim, то перейти к следующей строке"? я правильно понял? »

На все вопросы "Да" :).

eus_deus 26-09-2013 22:27 2224603

вынужден возобновить данный вопрос. не все гладко с некоторыми панелями. вот пример
Код:

[Buttonbar]
Buttoncount=20
button1=%COMMANDER_PATH%\Wcmicons.dll,977
cmd1=%COMMANDER_PATH%\Programs\Internet\The_Bat!\TheBatPortable.exe
iconic1=0
menu1=Почтовый клиент TheBat
button2=%COMMANDER_PATH%\Wcmicons.dll,896
cmd2=%COMMANDER_PATH%\Programs\Internet\MirandaIM\Miranda32.exe
iconic2=0
menu2=Miranda
button3=%COMMANDER_PATH%\Wcmicons.dll,767
cmd3=%COMMANDER_PATH%\Programs\Internet\Opera_AC\OperaLauncher.exe
iconic3=0
menu3=Opera AC  CTRL+SHIFT+ALT+O
button4=%COMMANDER_PATH%\Wcmicons.dll,768
cmd4=%COMMANDER_PATH%\Programs\Internet\Firefox\FirefoxPortable.exe
iconic4=0
menu4=Mozilla Firefox
button5=%COMMANDER_PATH%\Wcmicons.dll,487
cmd5=%COMMANDER_PATH%\Programs\Internet\GoogleEarth\GoogleEarthPortable.exe
iconic5=0
menu5=Планета Земля в GoogleEarth
button6=%COMMANDER_PATH%\Games\SolSuite\SolSuite 2012 12.6 + Graphics Pack 12.6.exe
cmd6=""%COMMANDER_PATH%\Games\SolSuite\SolSuite 2012 12.6 + Graphics Pack 12.6.exe""
path6=%COMMANDER_PATH%\Games\SolSuite\
iconic6=0
menu6=SolSuite 2012 12.6 + Graphics Pack 12.6
button7=
iconic7=0
button8=%COMMANDER_PATH%\Programs\Audio\Adobe Audition CS6\AuditionPortable.exe
cmd8=""%COMMANDER_PATH%\Programs\Audio\Adobe Audition CS6\AuditionPortable.exe""
path8=%COMMANDER_PATH%\Programs\Audio\Adobe Audition CS6\
iconic8=0
menu8=AuditionPortable
button9=%COMMANDER_PATH%\Programs\Audio\Adobe Audition CS6\App\Au\Adobe Audition CS6.exe
cmd9=""%COMMANDER_PATH%\Programs\Audio\Adobe Audition CS6\App\Au\Adobe Audition CS6.exe""
param9=%P%S
path9=%COMMANDER_PATH%\Programs\Audio\Adobe Audition CS6\App\Au\
iconic9=0
menu9=Открыть выделенные файлы в Adobe Audition CS6
button10=%COMMANDER_PATH%\Wcmicons.dll,779
cmd10=%COMMANDER_PATH%\Scripts\RunStopRestart.vbs
param10=""%%COMMANDER_PATH%%\Programs\Text\Punto_Switcher\Punto.exe" 3"
iconic10=-1
menu10=Автопереключение клавиатуры с Punto Switcher: Вкл./Выкл.
button11=%COMMANDER_PATH%\Wcmicons.dll,1878
cmd11=AkelPad.exe
iconic11=0
menu11=Открыть редактор AkelPad
button12=%COMMANDER_PATH%\Programs\Others\Cabinet\cabinet.exe
cmd12=""%COMMANDER_PATH%\Programs\Others\Cabinet\cabinet.exe""
path12=%COMMANDER_PATH%\Programs\Others\Cabinet\
iconic12=-1
menu12=Cabinet нумизмата
button13=%COMMANDER_PATH%\Programs\Players\AIMP3\AIMP3.exe
cmd13=%COMMANDER_PATH%\Programs\Players\AIMP3\AIMP3.exe D:\Musik\Musik.m3u
path13=D:\Musik\
menu13=Musik
button14=%COMMANDER_PATH%\Utilities\Scripting\AutoIt\CV\CV.exe
cmd14=%COMMANDER_PATH%\Utilities\Scripting\AutoIt\CV\CV.exe
path14=%COMMANDER_PATH%\Utilities\Scripting\AutoIt\CV\
iconic14=0
menu14=CV
button15=
iconic15=0
button16=%COMMANDER_PATH%\Wcmicons.dll,431
cmd16=%COMMANDER_PATH%\TCIMG.exe
param16=moves=%L||[input=BOX33]!!1
iconic16=-1
menu16=Перемещает выделенные объекты в активную панель - в создаваемую  папку с вводом имени папки, заменяя имеющиеся объекты
button17=%COMMANDER_PATH%\Wcmicons.dll,1744
cmd17=%COMMANDER_PATH%\TCIMG.exe
param17=copys=%L||[input=BOX33]!!1
iconic17=-1
menu17=Копирует выделенные объекты в активную панель - в создаваемую  папку с вводом имени папки, заменяя имеющиеся объекты
button18=
iconic18=0
button19=%COMMANDER_PATH%\Wcmicons.dll,431
cmd19=%COMMANDER_PATH%\TCIMG.exe
param19=moves=%L||"%p[INPUT=BOX35]\"!!3!!(.*\\)(([^\\]*\\){1})(.+)\\?!!$1$4
iconic19=-1
menu19=Перемещает выделенные объекты на уровень вверх в создаваемую папку,  заменяя имеющиеся объекты
button20=%COMMANDER_PATH%\Wcmicons.dll,1744
cmd20=%COMMANDER_PATH%\TCIMG.exe
param20=copys=%L||"%p[INPUT=BOX35]\"!!3!!(.*\\)(([^\\]*\\){1})(.+)\\?!!$1$4
iconic20=-1
menu20=Копирует выделенные объекты на уровень вверх в создаваемую папку,  заменяя имеющиеся объекты

Не конвертируются последние 4 команды.Вот эти
Код:

button16=%COMMANDER_PATH%\Wcmicons.dll,431
cmd16=%COMMANDER_PATH%\TCIMG.exe
param16=moves=%L||[input=BOX33]!!1
iconic16=-1
menu16=Перемещает выделенные объекты в активную панель - в создаваемую  папку с вводом имени папки, заменяя имеющиеся объекты
button17=%COMMANDER_PATH%\Wcmicons.dll,1744
cmd17=%COMMANDER_PATH%\TCIMG.exe
param17=copys=%L||[input=BOX33]!!1
iconic17=-1
menu17=Копирует выделенные объекты в активную панель - в создаваемую  папку с вводом имени папки, заменяя имеющиеся объекты
button18=
iconic18=0
button19=%COMMANDER_PATH%\Wcmicons.dll,431
cmd19=%COMMANDER_PATH%\TCIMG.exe
param19=moves=%L||"%p[INPUT=BOX35]\"!!3!!(.*\\)(([^\\]*\\){1})(.+)\\?!!$1$4
iconic19=-1
menu19=Перемещает выделенные объекты на уровень вверх в создаваемую папку,  заменяя имеющиеся объекты
button20=%COMMANDER_PATH%\Wcmicons.dll,1744
cmd20=%COMMANDER_PATH%\TCIMG.exe
param20=copys=%L||"%p[INPUT=BOX35]\"!!3!!(.*\\)(([^\\]*\\){1})(.+)\\?!!$1$4
iconic20=-1
menu20=Копирует выделенные объекты на уровень вверх в создаваемую папку,  заменяя имеющиеся объекты

Может, еще какие файлы не проходят, но пока этот один попался. Подозреваю, что все из за спецсимволов в командах

Creat0R 29-09-2013 08:21 2225544

Цитата:

Цитата eus_deus
не все гладко с некоторыми панелями »

Это ошибка в библиотеке IniString.
Нужно в ней заменить все вхождения [\n|\r] на [\n\r].

eus_deus 29-09-2013 18:52 2225804

Creat0R, после замены все ок!

eus_deus 04-10-2013 20:03 2228712

Выручайте, обнаружился мой косяк. Нужно еще одно условие к данной функции. Итак , вкратце. Отрезок функции такой
Код:

Func _ConvertBarFile()
If GUICtrlRead($Edit1)='' Then
MsgBox(262144+48, "Ошибка", "В текстовом поле нет кода для конвертирования")
Return
EndIf
$Config = Int(IniRead($INICONV, 'Setting', 'Config', 1))
Local $sMenuHeader="M"
If $Config=1 Then
$sMenuHeader="MENUITEM"
EndIf
Local $sInStrCond="Wcmicons.dll"
    Local $sRead = GUICtrlRead($Edit1)
    Local $iCount = Int(_IniString_Read($sRead, 'Buttonbar', 'buttoncount', 0))

    Local $sItems = ''

    For $i = 1 To $iCount
        Dim $aItem[4] = _
            [ _
                _IniString_Read($sRead, 'Buttonbar', 'menu' & $i, ''), _ ;Menu
                _IniString_Read($sRead, 'Buttonbar', 'button' & $i, ''), _ ;Button
                _IniString_Read($sRead, 'Buttonbar', 'cmd' & $i, ''), _ ;Cmd
                _IniString_Read($sRead, 'Buttonbar', 'param' & $i, '') _ ;Param
            ]

        $sLine = $sMenuHeader & ' '

        For $j = 0 To 3
            If $j = 1 And StringInStr($aItem[$j], $sInStrCond) Then
                $aItem[$j] = StringRegExpReplace($aItem[$j], '.*?(-?\d+)', '\1')
                Endif

Идет проверка на условие наличия wcmicons.dll в строке и обрезается все, кроме номера иконки.
Если в строке нет wcmicons.dll , то строка должна браться полностью. Но есть проблема - в этом случае в конец строки надо добавить ",0" ( запятую с нулем, без кавычек)
Пробовал так, получается чепуха - он к номеру дописывает еще запятую с нулем
Код:

For $j = 0 To 3
            If $j = 1 And StringInStr($aItem[$j], $sInStrCond) Then
                $aItem[$j] = StringRegExpReplace($aItem[$j], '.*?(-?\d+)', '\1')
 Else
                $aItem[$j] = $aItem[$j]&",0"
            EndIf

В общем надо
-если строка с путем к файлу иконки содержит wcmicons.dll, то брать только номер иконки
-если эта же строка с путем не содержит wcmicons.dll, то брать путь полностью, дописывая ",0" в конце этой строки

Creat0R 05-10-2013 21:47 2229226

Цитата:

Цитата eus_deus
Пробовал так, получается чепуха - он к номеру дописывает еще запятую с нулем »

Так разве не это и нужно?

Цитата:

Цитата eus_deus
брать путь полностью, дописывая ",0" в конце этой строки »

:)

Или имеется в виду что нужно обрезать у строки существующий номер, и вместо него подставлять 0?

eus_deus 05-10-2013 21:52 2229229

Цитата:

Цитата Creat0R
Так разве не это и нужно? »

нужно - если wcmicons.dll, то обрезать до номера - это есть
а если другой exe,icl,dll - то писать полное имя с добавлением ",0"

Creat0R 05-10-2013 22:20 2229236

Цитата:

Цитата eus_deus
нужно - если wcmicons.dll, то обрезать до номера - это есть
а если другой exe,icl,dll - то писать полное имя с добавлением ",0" »

Ну так оно так и работает с последним изменением выше.

Цитирую ещё раз:
Цитата:

Цитата eus_deus
Пробовал так, получается чепуха - он к номеру дописывает еще запятую с нулем »

Ведь это же и требуется.

eus_deus 05-10-2013 22:49 2229250

Цитата:

Цитата Creat0R
он к номеру дописывает еще запятую с нулем »

к номеру wcmicons ноль дописывать не надо
Цитата:

Цитата Creat0R
Ну так оно так и работает с последним изменением выше »

да, оно пишет имя полностью, но без нуля

Creat0R 05-10-2013 23:38 2229278

Цитата:

Цитата eus_deus
оно пишет имя полностью, но без нуля »

Только что перепроверил, всё происходит так как нужно, там где есть wcmicons.dll извлекается только номер, а где нет - добавляется запятая с нулём.

eus_deus 06-10-2013 20:32 2229788

Цитата:

Цитата Creat0R
Только что перепроверил, всё происходит так как нужно, там где есть wcmicons.dll извлекается только номер, а где нет - добавляется запятая с нулём. »

Вы имели в виду это код?
Цитата:

Цитата eus_deus
For $j = 0 To 3
If $j = 1 And StringInStr($aItem[$j], $sInStrCond) Then
$aItem[$j] = StringRegExpReplace($aItem[$j], '.*?(-?\d+)', '\1')
Else
$aItem[$j] = $aItem[$j]&",0"
EndIf »

Его работа ниже. Это не то, что нужно

Код:

MENUITEM Просмотр эскизов - открывается файл под курсором,0#!#1317#!#%COMMANDER_PATH%\BAR\044_Viiewers.bar,0#!#,0
MENUITEM ,0#!#,0#!#,0#!#,0
MENUITEM Панель специальных инструментов TC Image,0#!#1243#!#%COMMANDER_PATH%\Bar\028_Additional_Tools.bar,0#!#,0
MENUITEM Инструменты для работы с фото,0#!#1395#!#%COMMANDER_PATH%\Bar\258_Photoinstrument.bar,0#!#,0
MENUITEM Мои инструменты,0#!#2#!#%COMMANDER_PATH%\MENUIMG.exe,0#!#%Z%%COMMANDER_PATH%%\BAR\260_my_bar.bar||#podarok||$Мои~~инструменты||&v_podarok!!Частые~~программы,0
MENUITEM Программирование,0#!#53#!#%COMMANDER_PATH%\MENUIMG.exe,0#!#%Z%%COMMANDER_PATH%%\BAR\261_programming.bar||#RED||$Программирование,0
MENUITEM Запуск моих программ,0#!#%COMMANDER_PATH%\TCIMG.exe,0#!#%COMMANDER_PATH%\TCIMG.exe,0#!#tcimg=$tmtm_StartMyPrograms,0
MENUITEM Закачать по ссылке с буфера,0#!#891#!#%COMMANDER_PATH%\TCIMG.exe,0#!#downl="C:\Users\asmadeus\Downloads\Total\"!!1||cliplist,0
MENUITEM ,0#!#,0#!#-2,0#!#,0
MENUITEM Панель редактирования треков,0#!#2232#!#%COMMANDER_PATH%\BAR\229_Edit_Tracks.bar,0#!#,0
MENUITEM ,0#!#,0#!#,0#!#,0
MENUITEM Информация о медиофайлах и Настройка кодеков,0#!#41#!#%COMMANDER_PATH%\BAR\130_Audio_1.bar,0#!#,0
MENUITEM Редактирование тегов и Аудио утилиты,0#!#42#!#%COMMANDER_PATH%\BAR\131_Audio_2.bar,0#!#,0
MENUITEM Аудио Редакторы,0#!#605#!#%COMMANDER_PATH%\BAR\132_Audio_3.bar,0#!#,0
MENUITEM Регулировка системного звука,0#!#1611#!#%COMMANDER_PATH%\BAR\133_Audio_4.bar,0#!#,0
MENUITEM Программы для просмотра телевидения и прослушивания радио,0#!#406#!#%COMMANDER_PATH%\BAR\009_TV.bar,0#!#,0
MENUITEM ,0#!#,0#!#,0#!#,0


eus_deus 06-10-2013 21:00 2229799

надеюсь, вопрос снят окончательно. методом проб и ошибок заработало так ( участок, который правился):
Код:

For $j = 0 To 3
            If $j = 1 And StringInStr($aItem[$j], $sInStrCond) Then
                $aItem[$j] = StringRegExpReplace($aItem[$j], '.*?(-?\d+)', '\1')
                ElseIf $j = 1 and NOT StringInStr($aItem[$j], $sInStrCond)then
                  $aItem[$j]  =$aItem[$j]&',0'
            EndIf


Creat0R 06-10-2013 21:49 2229822

Цитата:

Цитата eus_deus
надеюсь, вопрос снят окончательно. методом проб и ошибок заработало так »

Отлично, учимся медитировать над кодом :).

Только во втором условии And Not... не нужно, достаточно просто проверять что $j = 1.
А ещё лучше, сделать так:

Код:


        For $j = 0 To 3
            If $j = 1 Then
                If StringInStr($aItem[$j], $sInStrCond) Then
                    $aItem[$j] = StringRegExpReplace($aItem[$j], '.*?(-?\d+)', '\1')
                Else
                    $aItem[$j] &= ',0'
                EndIf
            EndIf

            ...
        Next


eus_deus 07-10-2013 22:36 2230526

Creat0R, вы правильно сказали - учимся :)


Время: 15:54.

Время: 15:54.
© OSzone.net 2001-