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

CBアプリ工房


Tips >   

AnsiPos で任意文字の位置を得る 

更新 : 2009/04/05

 



解説:
C++Builder で文字列を操作する場合、AnsiString クラスを使います。AnsiString には、便利な関数がたくさん用意されています。
その中から今回は、任意の文字列の開始位置を調べる AnsiPos 関数を使ってみます。プログラミングしていると、文字列を加工する場面が頻繁にでてきます。この機会に関数をまとめて覚えておくのもいいかもしれません。

使用例:
以下
は、Edit に入力された文字列をドットで分割する例です。
Edit1 に入力されたドット付き文字列から、最初のドットまでの文字列を抽出して、Edit2 に表示しています。

コンポーネントは、Edit を二つと Button をひとつ適当に配置してください。

アプリケーションを起動して、Edit1 にドット付き文字列を入力してください("dsp40.ck.co.jp" を例として代入しています)。
Button1 の OnClick では、Edit1 に入力された文字列から最初のドットの位置を調べています。その結果から、最初のドットまでの文字列("dsp40")を Edit2 に表示してしています。

他の関数を使って、Edit1 に入力された文字列をいろいろに加工してみてください。

//-------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    //"dsp40.ck.co.jp" を代入
    Edit1->Text = "dsp40.ck.co.jp";
}
//-------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    //入力文字列を変数に代入
    AnsiString str = Edit1->Text;

    //最初のドットまでの文字列を Edit2 に代入
    Edit2->Text = str.SubString(1, str.AnsiPos('.') - 1); //"dsp40"
}
//-------------------------------------------------------------------



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