|
|
||||
Tips > |
|||||
WideString を使ってバイト数を文字数に変える |
更新 : 2010/05/11 |
||||
|
|
||
解説: バイト単位で文字をカウントするのではなく、文字数でカウントしたいときは、どうすればいいでしょう。 WideString を使うと、文字列をワイド文字(ユニコード)に変換してくれるので、そのまま Length で文字数が調べられます。 エディターなどで行列数を表示したいときなど、文字数でカウントさせることが簡単にできます。 使用例: Edit に入力した文字列 "abcあいう" のバイト数と文字数を求めています。 コンポーネントは、 Edit を三つと Button を適当に配置するだけです。 Button1 をクリックすると、Edit1 に入力された文字列を変数 str に格納します。 これをバイト数として、Edit2 に表示しています。 次に WideString で str をワイド文字に変換して、文字数を Edit3 に代入します。 WideString 型は半角全角に関係なく、すべての文字を 2 バイトで表します。 //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString str = Edit1->Text; // バイト数 Edit2->Text = IntToStr(str.Length()); // 文字数 WideString wide = str; // ワイド文字(ユニコード)に変換 Edit3->Text = IntToStr(wide.Length()); } //------------------------------------------------------------------- |