ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


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());
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.