AnsiString::printf 〜printf形式でAnsiString文字列を生成する〜


目次に戻る


久しぶりの関数紹介となりますが、VCLからの紹介になります。
 
みなさんは、AnsiStringの文字列を次のような感じで作った経験は無いでしょうか?
 
char buff[256];
sprintf( buff , "あいうえお = %s" , text );

AnsiString output = buff;

ところが、このような内容を持つAnsiStringデータを作成する簡単な方法があるのです。 それが AnsiString::printfメソッド です。
このメソッドを使うと次のようになります。
 
AnsiString output;
output.printf("あいうえお = %s" , text );
3行が2行になっただけで、たいして変わらないじゃないか。と思いますか?でも、重要な のは文字列の大きさを気にしなくて良いと言うことです。sprintfを使って文字列に値を代 入する場合、出力先の容量を超えないように気をつけなければいけません。ところが、 AnsiStringは文字列の長さを動的に内部で管理しているため、我々ユーザは特に意識し なくて良いのです。
 
メモリがらみのエラーやバグは原因の究明、対処が大変です。ライブラリが動的に 管理してくれる所は、できるだけライブラリに頼ってしまいましょう。バグの出現率が減りま すよ(ライブラリにバグがある場合を除く)。

目次に戻る