

皆さんこんばんは。
最近VB.NET2000でVisual Basicをはじめたのですが、どうにもString型の値をByte配列へ変換するやり方が分かりません。
VB6.0だとByte配列にStringを代入するだけでいいそうなのですが、.NETで代入しようとすると『型"String"の値を"Byteの1次元配列"に変換できません』というビルドエラーが表れてしまいます。
CByte( Mid(str,i,1) )
CLng( Mid(str,i,1) )
他にも上記コードのように一つずつ変換しようと試みたのですが、String中のある文字がワイドバイトらしく、System.InvalidCastExceptionが表れてしまいます。
("『"を上下反転したような文字)
ワイドバイトのStringを1バイトずつ区切ってByte配列やLong配列へ格納する手法というものはありませんでしょうか。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
Option Explicit On
Option Strict On
Option Compare Binary
Option Infer Off ' VB2008以上。
Class Q3512824
Shared Sub Main()
Dim Str1 As String = "ほげふが"
Dim ByteArray1 As Byte()
'Code Page 932 = Shift_JISもどき
'Code Page 65001 = UTF-8
ByteArray1 = System.Text.Encoding.GetEncoding(65001).GetBytes(Str1)
For Each Byte1 As Byte In ByteArray1
System.Console.WriteLine(Byte1.ToString)
Next
End Sub
End Class
この回答への補足
himajin100000さん
紹介していただいた手法で
System.Console.WriteLine(Byte1.ToString)
ではなく、
For i = 1 to length
System.Console.WriteLine( Byte1(i) )
Next
のように1文字づつ回して確認してみたところ、Byte配列が生成されているのを確認しました。
早とちりな返答をしてしまい、大変申し訳ありませんでした。
himajin100000さん
素早い返答ありがとうございます。
すみません、私の説明不足でした。
私がいま使っているAPIは、ポートが出したパケットをString型として出力するというものなのです。
つまり文章をエンコードするというよりも、JavaのString.getBytes()や、C言語のchar配列のようにASCIIコードとして変換したいのです。
himajin100000さんの紹介してくれた手法でも試してみましたが、"System.Byte[]"と空文字(?)らしき出力が出てくるのみで、うまくいきませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
ArrayListの初期値に二次元配列...
-
MATLABにて場合分け関数を定義...
-
配列変数の添字が範囲外ですと...
-
2次元動的配列の第一引数のみを...
-
特定のセル範囲で4文字以上入力...
-
VBのコントロール配列を二次元...
-
エクセルマクロで配列の値から...
-
for each の現在の配列ポインタ...
-
VBA 1次元配列を2次元に追加する
-
C言語を使用したプログラミング...
-
VBA 1つの列を3つ以上の条件で...
-
動的配列に値を返す関数
-
配列内の内容を全て表示する方法
-
[Excel2000_VBA] 型が一致しま...
-
リストボックスの値を拾うには
-
subの配列引数をoptionalで使う...
-
友愛数を探すプログラム
-
VB2008: CSV を二次元配列に読...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
VBA 1次元配列を2次元に追加する
-
特定のセル範囲で4文字以上入力...
-
ListViewで、非表示列って作れ...
-
配列変数の添字が範囲外ですと...
-
VB6 配列を初期化したい
-
subの配列引数をoptionalで使う...
-
《エクセル2000》A列・B列の商...
-
2次元動的配列の第一引数のみを...
-
ビンゴ
-
for each の現在の配列ポインタ...
-
配列に同じ値を入れる方法
-
配列を任意の数値で埋める方法
-
配列内の内容を全て表示する方法
-
Excel-VBAの配列「Public Const...
-
エクセルVBAの配列二重ループ処...
-
Array配列の末尾に追加したい。
-
MATLABにて場合分け関数を定義...
-
エクセルで最小値から0を除く方法
おすすめ情報