忍者ブログ
暇人おやじの暇なつぶやき
[61] [60] [59] [58] [57] [56] [55] [54] [53] [52] [51]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

■文字型の相互変換を行う Byte配列←→String型文字列①

まずString文字列をバイト配列にするにはEncodingクラスの命令GetBytesを利用する
そのためにあらかじめ
Encoding型の変数を定義する
System::Text::Encoding^ sjis;

エンコードはあらかじめ決められた方式があるが、日本語を利用するシフトJISコードなどを定義する場合には
GetEncoding命令で文字コードを与えないとならない

sjis= Encoding::GetEncoding( "shift_jis" );

この変数sjisを利用しByte配列へString型の文字列を変換して格納するには
byte配列の準備
   array<Byte>^b = gcnew array<Byte>(10);
次に、GetBytes命令でByte値を取得する
   b = sjis->GetBytes(sInput);

上記は10Byte分の領域を確保し、sinputの文字列を変換している

実際のコードは
int main(array<System::String ^> ^args)
{
   String^ sInput;
   System::Text::Encoding^ sjis= Encoding::GetEncoding( "shift_jis" );
   sInput = Console::ReadLine();
   array<Byte>^b = gcnew array<Byte>(sInput->Length);
   b = sjis->GetBytes(sInput);
   //sjis->GetBytes(sInput,0,sInput->Length,b,0);
   //array<Byte>^b = {0x00,0x12,0x34,0x56,0xAA,0x55,0xFF};
   Console::WriteLine( HexTest::ToHexString( b ) );
   Console::ReadLine();
   return 0;
}
このような感じである
これは25日のサンプルC++のサンプルで・・・(http://prg40age.blog.shinobi.jp/Entry/55/)を改良して、変換する文字列をコンソールから入力するようにしたものである

PR

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
フリーエリア
最新CM
最新TB
プロフィール
HN:
忍者 シオ才
性別:
非公開
バーコード
ブログ内検索