質問

考えてみます:

char [] chararray = txt1.Text;

私たちが同じことを行う方法のVisual Basic 6.0?

役に立ちましたか?

解決

あなたが最終的に何をしたいかに依存します。

あなた、例えば、VB6でこれを行うことができます:

Dim b() As Byte
b = Text1.Text

その方法はb配列が"string"からUnicodeデータを保持するためにリサイズされます - が、その後、各文字は、あなたが望むものはおそらくない2つのバイト間で分割されます。このトリックはByteで動作します。

<時間>

また、それを行うことができます:

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

各文字は今、1つのバイトを占有しますが、拡張文字は消えてしまいます。現在のシステムコードページが必要な文字が含まれている場合のみ、これを行います。

<時間>

あなたは配列に手動で文字をコピーすることができます:

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の文字列関数を使用して、個々の文字を操作することができます。

あなたが本当にcaracterコードの配列を必要とするまれなケースでは、あなたがByte配列を宣言する必要があります(VBは何charタイプを持っていない)、その後、あなたは、単にUnicodeを処理するために、配列、または使用StrConvに文字列を割り当てることができます異なるコードポイント、@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〜レン(txt1.Text))

iは1〜レン(txt1.Textを)=について   chararray(I)= ASCW(ミッド(text1.Textを、I、1)) 次の

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top