Что нового

Доступ к элементу строки как к элементу массива

S

shoo_

Гость
Доброго времени суток! Язык AutoIt для меня новый (я конечно знал про него, просто не пробовал на зуб). Дай думаю чего-нибудь автоматизирую... Начал с малого - с автоматизации Total Commander (убрать наг-скрин). Столкнулся с тем, что нужно было как-то забрать первый символ строки. Ну попробовал я все варианты с которыми имею честь общаться в жизни и в других языках, а именно: $string[$index] и $string{$index} - нифига. Ругается.

Вопрос: как мне без костылей обратиться к первому символу строки?

Сейчас у меня реализована какая-то откровенная костылятина одноногого ветерана боевых действий в лице вот такого кода:

Код:
Dim const $totalPath = "C:\totalcmd\TOTALCMD64.EXE";
Dim const $totalNagName = "Total Commander";
Dim const $totalTitleName = "Total Commander (x64) 8.0 - НЕ ЗАРЕГИСТРИРОВАНО";
Dim const $totalTitleNew = "Total Commander (x64) 8.0";

If WinExists($totalNagName) Then
	MsgBox(4112,"Error!","Only one instance of TC Window allowed!");	
	Exit;
Else
	If ShellExecute($totalPath) Then
		WinWaitActive($totalNagName);
		$okButtonText = StringLeft(WinGetText($totalNagName),1);
		Send("!" & $okButtonText);
		WinSetTitle($totalTitleName,"",$totalTitleNew);
	Else
		MsgBox(0,"Error!","Unable to execute file: " & $totalPath);
	EndIf
EndIf


Ключевая строка:

Код:
$okButtonText = StringLeft(WinGetText($totalNagName),1);


Неужели нельзя по человечьи ? Посмотрел в русской справке, но там по строкам как-то скудно. Если вопрос туп - простите зарание, я в АвтоИте вообще первый раз... :-\
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
shoo_ [?]
Доступ к элементу строки как к элементу массива
Код:
$sNagWinText = WinGetText($totalNagName)
$aNagWinText = StringSplit($sNagWinText, "") ; вот эта функция делает из строки массив
Send("!" & $aNagWinText[1]) ; первый символ строки при flag=0
 
Автор
S

shoo_

Гость
Ну точно, я читал про StringSplit, но как-то пропустил вот эту строчку:

If you use a blank string "" for the delimiters, each character will be returned as an element.

Спасибо за ответ. Можно закрывать.
 
Верх