Vb6 visualbasic6.0中的字符数组

Vb6 visualbasic6.0中的字符数组,vb6,Vb6,考虑: char [] chararray = txt1.Text; 我们如何在Visual Basic 6.0中执行相同的操作?这取决于您最终想要执行的操作 例如,您可以在VB6中执行此操作: Dim b() As Byte b = Text1.Text 这样一来,b数组的大小将调整为容纳“string”中的Unicode数据,但是每个字符将被拆分为两个字节,这可能不是您想要的。此技巧仅适用于字节 您也可以这样做: Dim b() As Byte b = StrConv(Text1.Te

考虑:

char [] chararray = txt1.Text;

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

这取决于您最终想要执行的操作

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

Dim b() As Byte
b = Text1.Text
这样一来,
b
数组的大小将调整为容纳
“string”
中的Unicode数据,但是每个字符将被拆分为两个字节,这可能不是您想要的。此技巧仅适用于
字节


您也可以这样做:

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) = "!"
:


VB6有一个
字符串
类型,因此此代码简单地变成:

Dim x As String
x = Text1.Text
可以使用VB6字符串函数就地操作该文本和操作单个字符


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

在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
编辑: 要遍历字符串并替换字符,只需在其长度上循环并使用string函数对其进行操作:

' 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

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

尺寸字符(1到Len(txt1.Text))与长度相同

对于i=1到Len(txt1.Text) 字符(i)=ASCW(中间(Text1.Text,i,1))
接下来

@Konrad Rudolph:其他两种方法都不做同样的事情,因此代码当然不是多余的。请不要无缘无故地重复其他类似的答案。我看不出来–您的代码与
b=StrConv(Text1.Text,vbFromUnicode)
有什么不同之处(当然除了数组中额外的字节值)?@Konrad Rudolph:它生成一个字符串数组,我在答案中明确指出了这一点,而不是字节数组。哇,仔细阅读确实有帮助。我完全忽略了这一点。这对我很有帮助,实际上我只是vb6的初学者。。。我想做的是-“我要去”是一个字符串,我想用*替换所有的间隙,使用char数组。感谢you@ashsihVB6中的字符串操作通常直接使用字符串,而不是字符数组。你看过替换功能了吗?请参见,它将子字符串的所有引用替换为另一个字符串。你说的“差距”到底是什么意思?空间?请尝试
str=Replace(str,“,”*”
我已经尝试过了,但我的基本问题是如何使用string/char逐个遍历所有字符array@ashish通过使用For循环,例如第三个示例中使用的For循环。因为在VB6中不可能完全执行相同的操作(因为它没有字符类型),更多的信息会有帮助。你打算用它做什么?实际上我只是vb6的初学者。。。我想做的是-“我要去”是一个字符串,我想用*替换所有的间隙,使用char数组。谢谢,我的基本问题是如何使用字符串/字符数组逐个遍历所有字符
' 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