Visual Basic 6.0中的字符数组

时间:2010-09-29 10:49:28

标签: vb6

考虑:

char [] chararray = txt1.Text;

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

5 个答案:

答案 0 :(得分:8)

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

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

Dim b() As Byte
b = Text1.Text

这样,b数组将被调整大小以保存来自"string"的Unicode数据 - 但是每个字符将被分割为两个字节,这可能不是您想要的。此技巧仅适用于Byte


您也可以这样做:

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

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


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

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

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

Dim s As String
s = Text1.Text

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

答案 1 :(得分:4)

你不能在VB6中做同样的事情,因为它没有字符数据类型。

您可以将字符串拆分为一个字符串数组,每个字符串包含一个字符:

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

编辑:

要遍历字符串并替换字符,您可以简单地循环它的长度并使用字符串函数来操作它:

' 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

答案 2 :(得分:2)

VB6有一个String类型,因此这段代码变成了:

Dim x As String
x = Text1.Text

您可以使用VB6字符串函数就地操作该文本并操纵单个字符。

在极少数情况下,你真的需要一个caracter代码数组,你需要声明一个Byte数组(VB没有char类型),然后你可以简单地将字符串分配给数组,或使用StrConv以不同方式处理Unicode代码点,如@GSerg所示。

答案 3 :(得分:0)

String To 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

答案 4 :(得分:0)

您可以通过以下方式获取字符串中每个字符的UNICODE值:

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

对于i = 1到Len(txt1.Text)   chararray(i)= ASCW(Mid(Text1.Text,i,1)) 下一步