考虑:

char [] chararray = txt1.Text;

我们如何做同样的在Visual Basic 6.0?

有帮助吗?

解决方案

这取决于你最终想要做的事。

可以,例如,为此在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

或者,你甚至可以在避免创建在所有的数组,becase的Mid也作为一个索引操作改变代替字符,不复制或分配任何内容:

Dim s As String
s = Text1.Text

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

其他提示

可以不这样做在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

VB6具有String类型因此,此代码简单地变为:

Dim x As String
x = Text1.Text

可以操纵就地文本和操纵使用VB6字符串函数单个字符。

在罕见的情况下,你真的需要卡拉科特代码的阵列,需要声明一个Byte阵列(VB没有char型),然后就可以将字符串简单地分配给数组,或使用StrConv到处理Unicode代码点不同,如图@GSerg。

字符串至阵列

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

您可以得到这样的字符串的每个字符的UNICODE值:

暗淡chararray(1至LEN(txt1.Text)),只要

有关i = 1到LEN(txt1.Text)   chararray(ⅰ)= ASCW(MID(Text1.Text,I,1)) 下一步

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top