Вопрос

Рассмотреть возможность:

char [] chararray = txt1.Text;

Как мы делаем то же самое в Visual Basic 6.0?

Это было полезно?

Решение

Это зависит от того, что вы в конечном итоге хотите сделать.

Вы можете, например, сделать это в VB6:

Dim b() As Byte
b = Text1.Text

Таким образом b Массив будет изменен для удержания данных Unicode из "string" - Но тогда каждый персонаж будет разделен на два байта, что, вероятно, не то, что вы хотите. Этот трюк работает только с 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) = "!"

Другие советы

Вы не можете сделать то же самое в 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 имеет A. String Тип, так что этот код просто становится:

Dim x As String
x = Text1.Text

Вы можете манипулировать этим текстом на месте и манипулировать отдельными символами, используя строковые функции VB6.

В редких случаях, когда вам действительно нужен массив кодов Caracter, вам нужно объявить 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 каждого символа строки таким образом:

Dim CharArray (1 до Len (TXT1.Text)) как долго

Для i = 1 до len (txt1.text) chararray (i) = ascw (mid (text1.text, i, 1)) следующий

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top