Come è possibile dividere una stringa VBA in una matrice di caratteri?Dividi la stringa in una matrice di caratteri?
Ho provato Split(my_string, "")
ma questo non ha funzionato.
Come è possibile dividere una stringa VBA in una matrice di caratteri?Dividi la stringa in una matrice di caratteri?
Ho provato Split(my_string, "")
ma questo non ha funzionato.
più sicuro & semplice è quello di solo ciclo;
Dim buff() As String
ReDim buff(Len(my_string) - 1)
For i = 1 To Len(my_string)
buff(i - 1) = Mid$(my_string, i, 1)
Next
Se è possibile utilizzare solo caratteri ansi, è possibile;
Dim buff() As String
buff = Split(StrConv(my_string, vbUnicode), Chr$(0))
ReDim Preserve buff(UBound(buff) - 1)
Ecco un altro modo per farlo in VBA.
Function CharacterArray(value As String)
value = StrConv(value, vbUnicode)
CharacterArray = Split(Left(value, Len(value) - 1), vbNullChar)
End Function
Sub example()
Dim d As String
Dim myArray()
myArray = CharacterArray("hi there")
End Sub
È possibile assegnare la stringa a un array di byte (è possibile anche il contrario). Il risultato è 2 numeri per ogni carattere, in modo natale converte in un array di byte contenente {} 88,0,109,0,97,0,115,0
oppure è possibile utilizzare StrConv
Dim bytes() as Byte
bytes = StrConv("Xmas", vbFromUnicode)
che vi darà {88.109, 97,115} ma in questo caso non è possibile assegnare l'array di byte a una stringa.
È possibile convertire i numeri nell'array di byte in caratteri utilizzando la funzione Chr()
il problema è che non esiste alcun metodo integrato (o almeno nessuno di noi potrebbe trovarne uno) per farlo in vb. Tuttavia, ce n'è uno per dividere una stringa negli spazi, quindi ricostruisco semplicemente la stringa e aggiunta negli spazi ....
Private Function characterArray(ByVal my_string As String) As String()
'create a temporary string to store a new string of the same characters with spaces
Dim tempString As String = ""
'cycle through the characters and rebuild my_string as a string with spaces
'and assign the result to tempString.
For Each c In my_string
tempString &= c & " "
Next
'return return tempString as a character array.
Return tempString.Split()
End Function
Cosa faremmo quando usiamo Unicode? – mgae2m