Frage
Bedenken Sie:
char [] chararray = txt1.Text;
Wie wir das gleiche tun in Visual Basic 6.0?
Lösung
Das hängt davon ab, was Sie schließlich tun wollen.
Sie können zum Beispiel tun dies in VB6:
Dim b() As Byte
b = Text1.Text
Auf diese Weise die b
Array der Größe verändert werden wird die Unicode-Daten von "string"
zu halten - aber dann jedes Zeichen wird über zwei Bytes aufgeteilt werden, die wahrscheinlich nicht das, was Sie wollen. Dieser Trick funktioniert nur mit Byte
.
Sie können auch das tun:
Dim b() As Byte
b = StrConv(Text1.Text, vbFromUnicode)
wird jeder Buchstabe nun ein Byte besetzen, aber die erweiterten Zeichen verschwunden sein. Dies nur tun, wenn die aktuelle System-Codepage der erforderlichen Zeichen enthält.
Sie können die Zeichen kopieren manuell auf ein Array:
Dim s() As String, i As Long
ReDim s(1 To Len(Text1.Text))
For i = 1 To UBound(s)
s(i) = Mid$(Text1.Text, i, 1)
Next
oder Sie können sogar ein Array überhaupt vermeiden zu schaffen, becase Mid
dient auch als Indexer Operator, der ein Zeichen an Stelle ändert, ohne das Kopieren oder etwas Zuweisung:
Dim s As String
s = Text1.Text
Mid$(s, 3, 1) = "!"
Andere Tipps
Sie können das gleiche in VB6 nicht tun, da es keinen Zeichendatentyp hat.
Sie können die Zeichenfolge in ein Array von Strings aufgeteilt, die jeweils ein einzelnes Zeichen:
Dim chararray(Len(txt1.Text) - 1) As String
For i = 1 to Len(txt1.Text)
chararray(i - 1) = Mid(txt1.Text, i, 1)
Next
Edit:
Um eine Zeichenfolge durchqueren und Zeichen ersetzen, können Sie einfach Schleife über Länge es und verwenden Sie die String-Funktion, es zu manipulieren:
' Copy the value of the proeprty to a local variable
Dim text as String = txt1.Text
' Loop over the length of the string
For i = 1 to Len(text)
' Check the value of a character
If Mid(text, i, 1) = " " Then
' Replace a character
Mid(textx, i, 1) = "*"
End If
Next
VB6 hat einen String
Typ sodass dieser Code einfach wird:
Dim x As String
x = Text1.Text
Sie können diesen Text an Ort und Stelle bearbeiten und einzelne Zeichen manipulieren, um die VB6-String-Funktionen.
In den seltenen Fällen, in denen Sie wirklich ein Array der caracter Codes benötigen, müssen Sie eine Byte
Array deklarieren (VB hat keine char
Typ), dann weisen Sie einfach die Zeichenfolge in das Array oder die Verwendung StrConv
zu Unicode behandeln Codepunkte unterschiedlich, wie durch @GSerg.
Public Function str2Array(xString As String) As String()
Dim tmpArray() As String
Dim tmpchar As String
' /* For Each Character In The String */
For I = 1 To Len(xString)
' /* Retrieve The Character */
tmpchar = Mid(xString, I, 1)
' /* Push It Into The Temporary Array */
spush tmpArray, tmpchar
Next I
' /* Return The Array To The Calling Procedure */
str2Array = tmpArray
End Function
Sie können den UNICODE-Wert jedes Zeichen der Zeichenfolge auf diese Weise erhalten:
Dim chararray (1 bis Len (txt1.Text)) As Long
Für i = 1 bis Len (txt1.Text) chararray (i) = AscW (Mid (Text1.Text, i, 1)) Weiter