Автор Тема: Доступ к элементу строки как к элементу массива  (Прочитано 2707 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн shoo_ [?]

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

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

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

Код: AutoIt [Выделить]
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


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

Код: AutoIt [Выделить]
$okButtonText = StringLeft(WinGetText($totalNagName),1);


Неужели нельзя по человечьи ? Посмотрел в русской справке, но там по строкам как-то скудно. Если вопрос туп - простите зарание,  я в AutoIt'е вообще первый раз...   :-\
« Последнее редактирование: Август 28, 2012, 11:53:38 от shoo_ »

Русское сообщество AutoIt

Доступ к элементу строки как к элементу массива
« Отправлен: Август 28, 2012, 11:48:02 »

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3655
  • Репутация: 968
    • Награды
  • Версия AutoIt: 3.3.14.0
shoo_  [?]
Цитировать
Доступ к элементу строки как к элементу массива
Код: AutoIt [Выделить]
$sNagWinText = WinGetText($totalNagName)
$aNagWinText = StringSplit($sNagWinText, "") ; вот эта функция делает из строки массив
Send("!" & $aNagWinText[1]) ; первый символ строки при flag=0


Оффлайн shoo_ [?]

  • Новичок
  • *
  • Сообщений: 3

  • Автор темы
  • Репутация: 0
    • Награды
Ну точно, я читал про StringSplit, но как-то пропустил вот эту строчку:

Цитировать
If you use a blank string "" for the delimiters, each character will be returned as an element.

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

Оффлайн AZJIO [?]

  • VIP
  • *
  • Сообщений: 2712
  • Репутация: 1137
    • мой сайт
    • Награды
  • Версия AutoIt: 3.3.8.1

Русское сообщество AutoIt

Re: Доступ к элементу строки как к элементу массива
« Ответ #3 Отправлен: Август 28, 2012, 17:46:52 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
25 Ответов
5515 Просмотров
Последний ответ Май 19, 2015, 22:07:56
от Tapok
0 Ответов
806 Просмотров
Последний ответ Май 12, 2015, 04:53:00
от madmasles
10 Ответов
2280 Просмотров
Последний ответ Июль 25, 2015, 14:37:39
от tarhitay
6 Ответов
2016 Просмотров
Последний ответ Сентябрь 30, 2015, 18:07:32
от InnI
0 Ответов
1058 Просмотров
Последний ответ Сентябрь 23, 2015, 15:05:01
от madmasles
6 Ответов
1317 Просмотров
Последний ответ Октябрь 28, 2015, 18:35:09
от Yashied
4 Ответов
1266 Просмотров
Последний ответ Март 13, 2016, 08:39:32
от alex33
8 Ответов
1276 Просмотров
Последний ответ Июль 30, 2016, 19:28:16
от Alofa
13 Ответов
2274 Просмотров
Последний ответ Март 03, 2017, 19:44:59
от Alofa
1 Ответов
259 Просмотров
Последний ответ Май 20, 2017, 19:01:27
от Prog