*文字のエンコード [#ge89d48c]

http://www.picfun.com/equipj53.htmlにて紹介されている、PC側ソフトウェアに、以下のようなコードが含まれています。
 Dim data() As Byte
 data() = StrConv(Left(Text2.Text & "                ", 16), 128)
これは、Visual Basic内部で文字の扱いがUNICODEで行われているので、それをASCII CODEに変換するコードです。

ところが、このコードはVB.NETでは互換性が無く、自動変換されたコードを実行しても、実行中に例外が発生します。

 'UPGRADE_TODO: System.Text.UnicodeEncoding.Unicode.GetBytes() を使うために
 'コードがアップグレードされましたが、動作が異なる可能性があります。 
 '詳細については、  
 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1059"' を
 'クリックしてください。
 data = System.Text.UnicodeEncoding.Unicode.GetBytes(_
  StrConv(VB.Left(Text2.Text & "                ", 16), 128))

そこで、
http://www.atmarkit.co.jp/fdotnet/dotnettips/010str2byte/str2byte.html
を参考にし、以下のように移植しました。
 'UNICODE->ASCII変換
 asciiEnc = Encoding.GetEncoding("ascii")
 data = asciiEnc.GetBytes(VB.Left(Text1.Text & "                ", 16))
 Console.WriteLine(BitConverter.ToString(data))

1行目:変換後の文字コードを指定します。"ascii"の他にも選択可能。(詳細は"GetEncoding"メソッドのマニュアルをご覧下さい)~
2行目:Textコントロール"Text1"に入力されている文字を、左から16文字分ASCII Codeに変換します。~
3行目:コンソールにASCII Codeで出力します。

http://d.hatena.ne.jp/myasu/20050112

RIGHT:2005-01-13 (木) 09:24:43
----
[[プログラミング]]
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS