|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Работа со строками и циклами |
|
|
[решено] Работа со строками и циклами
|
Старожил Сообщения: 156 |
Профиль | Отправить PM | Цитировать Добрый вечер! Подбросили мне идею, и начало кода, который у меня не заработал. Итак, имеем текст в текстовом поле $Edit1
TOTALCMD#BAR#DATA %COMMANDER_PATH%\Programs\Players\AIMP3\AIMP3.exe %COMMANDER_PATH%\Wcmicons.dll,387 AIMP3 0 -1 С этим прекрасно справляется функция Func _Convert() Local $s_Read, $s_Ico, $s_NewString $Config=IniRead ($INICONV, "Setting", "Config", 1) $s_result=GUICtrlRead($Edit2) GUICtrlSetData($Edit2,"") Switch $Config Case '1' $s_NewString="MENUITEM " Case '0' $s_NewString="M " EndSwitch $s_Read =StringSplit(GUICtrlRead($Edit1),@CRLF,1) If $s_Read[0] < 5 Then Return If StringInStr ( $s_Read[4], "wcmicons.dll") then $s_Ico = StringRegExpReplace($s_Read[4], '^.*,', '') Else $s_Ico=$s_Read[4] Endif $s_NewString &=$s_Read[5] & $Delimeters & $s_Ico&$Delimeters & $s_Read[2] & StringRegExpReplace( $Delimeters & $s_Read[3], $Delimeters & '$|\s+', '') GUICtrlSetData($Edit2, $s_result&$s_NewString& @CRLF) _GUICtrlEdit_Scroll($Edit2, $SB_SCROLLCARET ) GUICtrlSetData($Edit1, "") EndFunc Подкинули начало функции Строка MsgBox(4096, "Переменная ", "$aC =>" & $aC[$i] & "<=") выдает ошибку, хотя она там по сути и не нужна |
|
Отправлено: 21:43, 09-09-2013 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата eus_deus:
Хотя можно попробовать: $vTest = ClipGet() ;Тут содержимое кода ;Get TOTALCMD#... blocks $aData = StringRegExp($vTest, '(?s)BAR#DATA\s+(.+?)(?:TOTALCMD#|$)', 3) $sMenuItems = '' For $i = 0 To UBound($aData)-1 $aParams = StringRegExp($aData[$i], '(.*)\r\n\r\n.*,(-?\d+)\r\n(.*)\r\n', 3) If UBound($aParams) >= 3 Then $sMenuItems &= 'MENUITEM ' & $aParams[2] & '#!#' & $aParams[1] & '#!#' & $aParams[0] & @CRLF EndIf Next MsgBox(64, 'Title', $sMenuItems) |
|
------- Отправлено: 01:54, 10-09-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
TOTALCMD#BAR#DATA %COMMANDER_PATH%\Programs\Players\AIMP3\AIMP3.exe %COMMANDER_PATH%\Wcmicons.dll,387 AIMP3 0 -1 TOTALCMD#BAR#DATA %COMMANDER_PATH%\Programs\Players\AIMP3\AIMP3.exe %COMMANDER_PATH%\Wcmicons.dll,387 AIMP3 0 -1 TOTALCMD#BAR#DATA %COMMANDER_PATH%\Programs\Players\AIMP3\AIMP3.exe %COMMANDER_PATH%\Wcmicons.dll,387 AIMP3 0 -1 Цитата Creat0R:
|
||
Отправлено: 13:20, 10-09-2013 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата eus_deus:
Замени ClipGet() на GUICtrlRead($Edit1). |
|
------- Отправлено: 18:08, 10-09-2013 | #4 |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать |
|
Последний раз редактировалось eus_deus, 10-09-2013 в 19:25. Отправлено: 18:43, 10-09-2013 | #5 |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:21, 10-09-2013 | #6 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать eus_deus,
А можно узнать, зачем все это надо? Уважаю и TC и AutoIt, не первый год обоими пользуюсь. Но зачем надо делать подобные преобразования - ума не приложу. Вдруг мне тоже надо? |
Отправлено: 02:06, 11-09-2013 | #7 |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать Dm666, сомневаюсь, что тебе пригодится.
Цитата Dm666:
Цитата Creat0R:
Цитата Dm666:
Итак, теперь дополнение к вопросу. Код кнопки тотала содержит 6-8 строк (в завимости от параметров) TOTALCMD#BAR#DATA "%COMMANDER_PATH%\Programs\Graphics\Photoshop\App\PhotoshopCS6\Photoshop.exe" %P%S %COMMANDER_PATH%\Wcmicons.dll,511 Открыть выбранные файлы в Photoshop -1 TOTALCMD#BAR#DATA %COMMANDER_PATH%\Programs\Players\AIMP3\AIMP3.exe %P%S Wcmicons.dll,387 Открыть выделенные файлы\папки в AIMP3 0 -1 Для случая, когда в поле одна кнопка, я пример писал рабочий. Как сделать это в цикле? |
|||
Отправлено: 11:16, 11-09-2013 | #8 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата eus_deus:
$vTest = ClipGet() ;Тут содержимое кода ;Get TOTALCMD#... blocks $aData = StringRegExp($vTest, '(?s)BAR#DATA\s+(.+?)(?:TOTALCMD#|$)', 3) $sMenuItems = '' For $i = 0 To UBound($aData)-1 $aParams = StringSplit(StringStripCR($aData[$i]), @LF) If $aParams[0] >= 4 Then If StringInStr($aParams[3], 'wcmicons.dll') Then $aParams[3] = StringRegExpReplace($aParams[3], '.*?(-?\d+)', '\1') EndIf $sMenuItems &= 'MENUITEM ' & $aParams[4] & '#!#' & $aParams[3] & '#!#' & $aParams[1] & '#!#' & $aParams[2] & @CRLF EndIf Next MsgBox(64, 'Title', $sMenuItems) |
|
------- Отправлено: 12:46, 11-09-2013 | #9 |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать Creat0R, ну прости засранца)) Вроде ставлю задачу, вроде всае расписываю, а всегда чего то не хватает..Я просто не углядел, что коды у кнопок могут иметь разное количество строк...
|
Отправлено: 14:46, 11-09-2013 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Работа со строками txt файла. | kirillgoogle | Программирование и базы данных | 16 | 26-06-2012 14:00 | |
VBA - Работа со строками | zena | Программирование и базы данных | 5 | 21-02-2011 09:03 | |
C/C++ - [решено] Работа со строками. Буфер содержит нуль-терминатор | Dr.Dark | Программирование и базы данных | 5 | 29-08-2010 16:13 | |
C/C++ - [решено] Работа с строками | crashtuak | Программирование и базы данных | 16 | 26-03-2009 01:21 | |
CMD/BAT - [решено] Работа со строками в cmd-файлах | melato | Скриптовые языки администрирования Windows | 3 | 30-01-2007 08:52 |
|