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

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" в конце этой строки