Wie kann ich wie ein Array in Autoit auf eine Zeichenfolge zugreifen? (Ich porte Code von C ++ nach Autoit)
Frage
Ok, Gah, Syntax Conversion -Problem hier ... wie würde ich das in autoit machen?
String theStr = "Here is a string";
String theNewStr = "";
for ( int theCount = 0; theCount < theStr.Size(); theCount++ )
{
theNewStr.Append(theStr[theCount]);
}
Ich versuche, auf einzelne Zeichen in einer Zeichenfolge in Autoit zuzugreifen und sie zu extrahieren. Das ist es. Vielen Dank.
Lösung
Was ist damit:
$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)
Andere Tipps
#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
In Autoit ist es genauso einfach, eine Zeichenfolge zu kopieren. Um auf ein Stück einer Zeichenfolge (einschließlich eines Zeichens, das noch eine Zeichenfolge ist) zuzugreifen, verwenden Sie StringMid (), das von Microsoft Basic-80 und jetzt Visual Basic (und alle Grundlagen) ein Holdover ist. Sie können es trotz trotzdem tun
theNewStr = theStr
Oder Sie können es auf die harte Tour machen:
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).
& ist eine Verkettung in Autoit. StringMid extrahiert einen Stück einer String. Es kann Ihnen auch ermöglichen, umgekehrt zu sein: Ersetzen Sie einen Teil einer Zeichenfolge durch etwas anderes. Aber damit würde ich Unit -Tests durchführen. Ich denke, das funktioniert in Basic, aber nicht sicher über Autoit.