Как я могу получить доступ к строке, как массив в Autoit? (Я переношу код из C ++ в Autoit)

StackOverflow https://stackoverflow.com/questions/4597006

  •  15-10-2019
  •  | 
  •  

Вопрос

ОК, Гах, проблема конверсии синтаксиса здесь ... Как бы я сделал это в Autoit?

String theStr = "Here is a string";
String theNewStr = "";

for ( int theCount = 0; theCount < theStr.Size(); theCount++ )
{
theNewStr.Append(theStr[theCount]);
}

Я пытаюсь получить доступ к отдельным chars в строке в аутоте и извлечь их. Вот и все. Спасибо.

Это было полезно?

Решение

Что насчет этого:

$theStr = StringSplit("Here is a string", "") ; Create an array
$theNewStr = ""

For $i = 1 to $theStr[0] Step 1
    $theNewStr = $theNewStr & $theStr[$i]
Next
MsgBox(0, "Result", $theNewStr)

Другие советы

#include <string>
std::string theStr = "Here is a string";
std::string theNewStr; 
//don't need to assign blank string, already blank on create

for (size_t theCount = 0; theCount < theStr.Size(); theCount++ )
{
    theNewStr += theStr[theCount];
}
//or you could just do 
//theNewStr=theStr;
//instead of all the above

В Autoit так же просто скопировать строку. Чтобы получить доступ к кусочке строки (включая символ, который по-прежнему является строкой), вы используете StringMid (), который является задержанием от Microsoft Basic-80, а теперь Visual Basic (и все основы). Вы можете сделать

theNewStr = theStr

Или вы можете сделать это трудным путем:

For $theCount = 1 to StringLen($theStr)
    theNewStr &= StringMid($theStr, $theCount, 1)
Next
;Arrays and strings are 1-based (well arrays some of the time unfortunately).

и является объединением в Autoit. Stringmid извлекает кусок строки. Это также может позволить вам сделать обратное: замените кусок строки чем -то другим. Но я бы с этим провел модульные тестирование. Я думаю, что это работает в базовом, но не уверенном насчет Autoit.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top