1

テキスト行で満たされた StringArray があり、文字列の各配列を取得してバイトに変換する必要があります。どのように

Dim splitText() As String = TextRead.Split(Chr(13))
Dim byteArray() as string = Byte.Parse(splitText(0))

文字列配列の 1 つの要素を取得して Byte に変換できるようになったら、文字列配列内の位置ごとにループを配置しますが、文字列形式が byte.parser に対して正しくないと表示されます。

4

4 に答える 4

2

改行が単一CRの文字であることはめったになく、古い Macintosh システム (バージョン 9 以前) でのみ使用されることがほとんどです。一般的な改行はCR+LF(Windows) とLF(Unix/OS X) です。

間違った改行で文字列を分割すると、文字列全体が配列内の単一項目として影響を受けないままになるか、文字列に改行文字の半分が残ることになります。いずれにせよ、文字列を解析することはできません。

Windows タイプの改行を含む文字列の場合:

Dim splitText() As String = TextRead.Split(ControlChars.CrLf)

Unix/OS X タイプの改行を含む文字列の場合:

Dim splitText() As String = TextRead.Split(ControlChars.Lf)

両方の種類の改行を処理するには:

Dim splitText() As String = TextRead.Split(New String() { ControlChars.CrLf, ControlChars.Lf }, StringSplitOptions.None)

現在のシステムの改行を使用するには:

Dim splitText() As String = TextRead.Split(New String() { Envitonment.NewLine }, StringSplitOptions.None)

文字列に 10 進形式の数値が含まれている場合 (たとえば13{break}37{break}42、 の場合)、文字列をバイトに解析できるようになります。

Dim byteArray() as Byte = splitText.Select(AddressOf Byte.Parse).ToArray()

すべてワンライナーとして:

Dim byteArray() as Byte = TextRead.Split(ControlChars.CrLf).Select(AddressOf Byte.Parse).ToArray()
于 2011-07-05T19:17:04.563 に答える
1

1 バイトではなく、テキスト行全体を解析しようとしているようです。やろうとしていることを達成するには、文字列内の各文字をループしてバイトに解析する必要があります。ただし、長いルートを取る代わりに、組み込みの .NET 解析メソッドを使用して、文字列をバイトに変換する方法を見つけることができます。例えば

Dim yourBytes as Byte() = System.Text.Encoding.UTF8.GetBytes(yourString)

この例では UTF8 を使用しているため、(要件に応じて) エンコード方法を変更できます。

GetString補足として、 と同じクラスにあるを使用して、バイト配列全体を文字列に逆にすることもできますGetBytes

于 2011-07-05T14:48:16.870 に答える
1
    ' Dim splitText() As String = TextRead.Split(New String() {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)
    Dim splitText() As String = TextRead.Split(New Char() {ControlChars.Cr}, StringSplitOptions.RemoveEmptyEntries)
    For Each foo As String In splitText
        'make sure to select correct encoding
        Dim byteArray() As Byte = System.Text.Encoding.ASCII.GetBytes(foo)
    Next
于 2011-07-05T15:51:49.413 に答える
0

やってみました

Dim someBytes() as Byte = System.Text.ASCIIEncoding.GetBytes(putyourStringhere)
于 2011-07-05T14:47:40.143 に答える