Question

Considérez:

char [] chararray = txt1.Text;

Comment nous faisons la même chose dans Visual Basic 6.0?

Était-ce utile?

La solution

Cela dépend de ce que vous voulez éventuellement faire.

Vous pouvez, par exemple, faire en VB6:

Dim b() As Byte
b = Text1.Text

De cette façon, le tableau de b sera redimensionnée pour contenir les données Unicode de "string" - mais chaque personnage sera divisé entre deux octets qui est probablement pas ce que vous voulez. Cette astuce ne fonctionne qu'avec Byte.


Vous pouvez aussi le faire:

Dim b() As Byte
b = StrConv(Text1.Text, vbFromUnicode)

Chaque lettre va maintenant occuper un octet, mais les caractères étendus sera disparu. Seulement faire si la page de code du système contient les caractères requis.


Vous pouvez copier les caractères manuellement à un tableau:

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

Ou vous pouvez même éviter de créer un tableau du tout, becase Mid sert également un opérateur indexeur qui change un caractère en place, sans copier ou allouer quoi que ce soit:

Dim s As String
s = Text1.Text

Mid$(s, 3, 1) = "!"

Autres conseils

Vous ne pouvez pas faire la même chose en VB6, car il ne dispose pas d'un type de données de caractère.

Vous pouvez diviser la chaîne en un tableau de chaînes, chacune contenant un seul caractère:

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:

Pour parcourir une chaîne et remplacer des caractères, vous pouvez faire une boucle sur la longueur de et utiliser la fonction de chaîne pour le manipuler:

' 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 a un type de String si ce code devient simplement:

Dim x As String
x = Text1.Text

Vous pouvez manipuler ce texte en place et de manipuler des caractères individuels en utilisant les fonctions de chaîne VB6.

Dans les rares cas où vous avez vraiment besoin d'un tableau des codes de caracter, vous devez déclarer un tableau de Byte (VB n'a pas de type de char), alors vous pouvez simplement assigner la chaîne au tableau, ou l'utilisation StrConv pour gérer Unicode les points de code différemment, comme représenté par @GSerg.

Chaîne Pour tableau :

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

Vous pouvez obtenir la valeur UNICODE de chaque caractère de la chaîne de cette manière:

Dim chararray (1 à Len (txt1.Text)) As Long

Pour i = 1 à Len (txt1.Text)   chararray (i) = ASCW (Mid (Text1.Text, i, 1)) Suivant

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top