• ベストアンサー

C#.NETでバイト数が数えられない!!

こんにちは。現在C#.NETで開発を行っております。 そこでの通信方法が決まったバイト数で区切られた 文字を送受信してるのですが、困ったことにC#.NET をはじめ、.NETでは文字数はカウントできてもバイト 数はカウントできないらしいです。.NET初心者の私は いま行き詰ってしまいました。 現在の状況はこのようになっています。 例えば、Aという項目が2バイト、Bという項目が4バイト Cという項目が3バイトの全部で9バイトと決まっているとします。次の 「AABBBBCCC」というように、全部半角であればSubString(0,2) 、SubString(2,4),SubString(6,3)というようにして、取得できる のですが、「あいイイうウ」というような文字列だと同じ9バイトでも .NETだと文字数でしかとれないのでめちゃくちゃなものになってし まいます。なにかよいアイデアはないでしょうか?? 納期も迫っているので大変困っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • herencia
  • ベストアンサー率56% (120/211)
回答No.1

.NETでもバイト数を取得できます。 http://www.atmarkit.co.jp/fdotnet/dotnettips/012strcount/strcount.html 文字列の全角/半角をチェックするには? http://www.atmarkit.co.jp/fdotnet/dotnettips/014strcheck/strcheck.html も参考になるかもしれません。 .NETでの文字列処理は下記にたくさん載ってます。 http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.2

そもそも .NET では (Java などでもそうですが) 「バイト列 (byte[])」と「文字列 (string または char[])」は異なるものとして明確に区別します。 なので、扱っているデータがバイト列なのか文字列なのかを常に意識しながらプログラムを構成しなくてはなりません。 今回の質問のプログラムではバイト列を送受信しているわけですから、それをいきなり文字列として扱っている点に誤りがあります。

すると、全ての回答が全文表示されます。

関連するQ&A