Domanda

Si consideri:

char [] chararray = txt1.Text;

Come lo facciamo lo stesso in Visual Basic 6.0?

È stato utile?

Soluzione

Questo dipende da ciò che alla fine si vuole fare.

È possibile, ad esempio, fare questo in VB6:

Dim b() As Byte
b = Text1.Text

In questo modo la matrice b verrà ridimensionata per contenere i dati Unicode da "string" - ma poi ogni personaggio sarà diviso in due byte che probabilmente non è ciò che si desidera. Questo trucco funziona solo con Byte.


Si può anche fare questo:

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

Ogni lettera sarà ora occupano un byte, ma i caratteri estesi sarà andato. Farlo solo se la tabella codici di sistema corrente contiene i caratteri necessari.


È possibile copiare i caratteri manualmente ad un 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

o si può anche evitare di creare una matrice a tutti, becase Mid serve anche come operatore indicizzatore che cambia un personaggio in atto, senza copiare o assegnare qualsiasi cosa:

Dim s As String
s = Text1.Text

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

Altri suggerimenti

Non si può fare lo stesso in VB6, in quanto non dispone di un tipo di dati carattere.

È possibile suddividere la stringa in un array di stringhe, ciascuna contenente un singolo carattere:

Dim chararray(Len(txt1.Text) - 1) As String
For i = 1 to Len(txt1.Text)
  chararray(i - 1) = Mid(txt1.Text, i, 1)
Next

Modifica:

Per attraversare una stringa e sostituire i caratteri, si può semplicemente un ciclo su di essa la lunghezza e utilizzare la funzione di stringa di manipolarlo:

' 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 ha un tipo String quindi questo codice diventa semplicemente:

Dim x As String
x = Text1.Text

È possibile manipolare il testo sul posto e manipolare singoli caratteri utilizzando le funzioni di stringa VB6.

Nei rari casi in cui si ha realmente bisogno di una serie di codici Caracter, è necessario dichiarare una matrice Byte (VB non ha alcun tipo char), allora si può semplicemente assegnare la stringa la matrice, o l'uso StrConv per gestire Unicode punti di codice diverso, come mostrato dalla @GSerg.

stringa Per Array :

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

È possibile ottenere il valore Unicode di ciascun carattere della stringa in questo modo:

Dim chararray (da 1 a Len (txt1.Text)) As Long

Per i = 1 a Len (txt1.Text)   chararray (i) = ASCW (Mid (Text1.Text, i, 1)) Avanti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top