Visual Basic 6.0中的字符数组

ash*_*ish 3 vb6

考虑:

char [] chararray = txt1.Text;
Run Code Online (Sandbox Code Playgroud)

我们如何在Visual Basic 6.0中执行相同的操作?

GSe*_*erg 8

这取决于你最终想做什么.

例如,您可以在VB6中执行此操作:

Dim b() As Byte
b = Text1.Text
Run Code Online (Sandbox Code Playgroud)

这样,b数组将被调整大小以保存Unicode数据"string"- 但是然后每个字符将被分割为两个字节,这可能不是你想要的.这个技巧只适用于Byte.


你也可以这样做:

Dim b() As Byte
b = StrConv(Text1.Text, vbFromUnicode)
Run Code Online (Sandbox Code Playgroud)

每个字母现在占用一个字节,但扩展字符将消失.仅当当前系统代码页包含所需字符时才执行此操作.


您可以手动将字符复制到数组:

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
Run Code Online (Sandbox Code Playgroud)

或者你甚至可以避免创建一个数组,Mid因为它还可以作为一个索引器操作符来改变一个字符,而无需复制或分配任何东西:

Dim s As String
s = Text1.Text

Mid$(s, 3, 1) = "!"
Run Code Online (Sandbox Code Playgroud)