★ AnsiString Class for C++Builder



AnsiString クラスは C++ Builder で使われる文字列クラスです。C++Builder のコンポーネントの多くで使われており、避けては通れません。ヘルプを見ても記載されていますが、一ヶ所にまとまっていた方が調べやすいのでまとめてみました。印刷して手元に置いておくのでしたら、LaTeX で書いたのもありますので、LaTeX が使える環境なら LaTeX 版をどうぞ。(LaTeX の方が印刷結果がきれいです。)


1. 常用メンバ関数

◆ char* c_str( )
文字列をC言語の char* 文字列で返す。返すのはあくまでも char* 型のポインタであり、文字列のコピーが作られるわけではない。従って、受け取った char* 文字列を安全に操作したい場合は strcpy( ) などでコピーすると良い。

◆ int Length( )
文字列の長さ(文字数)を返す。

◆ int AnsiCompare(const AnsiString& str)
this の文字列と str の文字列を比較する。大文字と小文字は区別される。比較演算は Windows に準拠。

◆ int AnsiCompareIC(const AnsiString& str)
this の文字列と str の文字列を比較する。大文字と小文字は区別されない。比較演算は Windows に準拠。

◆ int AnsiPos(const AnsiString& str)
this の文字列内に str と同じ文字列が含まれる場合、その始まりのインデックス(開始位置)を返す。含まれない場合は 0 を返す。2バイト文字はサポートされている。

◆ int Pos(const AnsiString& str)
this の文字列内に str と同じ文字列が含まれる場合、その始まりのインデックス(開始位置)を返す。含まれない場合は 0 を返す。2バイト文字はサポートされていない。

◆ int LastDelimiter(const AnsiString& delims)
this 文字列内で、区切り記号 delims(複数指定も可)と一致する最後の区切りのインデックス(文字位置)を返す。this の文字列には2バイト文字を使用しても大丈夫だが、区切り記号に2バイト文字を使用することは出来ない。

◆ char* AnsiLastChar( )
文字列内の最後の文字を指すポインタを返す。2バイト文字はサポートされている。

◆ AnsiString SubString(int index, int count)
index 番目の文字から count 個の文字を含む部分文字列を作って返す。

2.オペレータ

◆ operator =
文字列を代入する。

◆ operator ==
文字列が等しいとき true を返す。

◆ operator !=
文字列が等しくないとき true を返す。

◆ operator <, <=, >, >=
文字列を比較する。

◆ operator +
文字列を連結する。

◆ operator +=
文字列を連結、代入する。

◆ operator []
インデックス番目の文字を返す。

3.文字列操作

◆ void Delete(int index, int count)
index 番目の文字から count 個の文字を削除する。

◆ void Insert(const AnsiString& str, int index)
index で示される位置に str を挿入する。

◆ void SetLength(int length)
length が現在の文字列よりも短い場合に、文字列の長さを length 個に切りつめる。

◆ AnsiString Trim( )
文字列の先頭と末尾の空白と制御文字を取り除いた文字列を作って返す。元の文字列には影響しない。

◆ AnsiString TrimLeft( )
文字列の先頭の空白と制御文字を取り除いた文字列を作って返す。元の文字列には影響しない。

◆ AnsiString TrimRight( )
文字列の末尾の空白と制御文字を取り除いた文字列を作って返す。元の文字列には影響しない。

4.判別

◆ bool IsEmpty( )
文字列が空の場合 true を返す。

◆ bool IsDelimiter(const AnsiString& delims, int index)
index 番目の文字が区切り記号 delims(複数指定も可)と一致するとき true を返す。2バイト文字はサポートされている。

◆ bool IsPathDelimiter(int index)
index 番目の文字がディレクトリの区切り記号(¥)と一致する場合 true を返す。2バイト文字はサポートされている。

◆ TStringMbcsByteType ByteType(int index)
index 番目のバイトが2バイト文字の1バイト目のときは mbLeadByte を返し、2バイト文字の2バイト目のときは mbTrailByte を返す。2バイト文字の一部でない場合は mbSingleByte を返す。

◆ bool IsLeadByte(int index)
index 番目の文字が2バイト文字の1バイト目のとき true を返す。

◆ bool IsTrailByte(int index)
index 番目の文字が2バイト文字の2バイト目のとき true を返す。

5.各種の変換

◆ AnsiString LowerCase( )
大文字を小文字に変換した文字列を作って返す。元の文字列には影響しない。変換処理は Windows に準拠。

◆ AnsiString UpperCase( )
小文字を大文字に変換した文字列を作って返す。元の文字列には影響しない。変換処理は Windows に準拠。

◆ int ToInt( )
文字列を整数に変換して返す。文字列が有効でないときはEConvertError 例外を送出する。

◆ int ToIntDef(int def)
文字列を整数に変換して返す。文字列が有効でないときはデフォルト値として def が返される。

◆ double ToDouble( )
文字列を浮動小数点数に変換して返す。文字列が有効でないときはEConvertError 例外を送出する。文字列には符号(省略可)と概数部と E または e に続く符号付き整数を指定する。(例: 6.02e+23)

◆ AnsiString IntToHex(int num, int digits)
num から16進数表現の文字列を作って返す。digits には返される16進文字列の最小桁数を指定する。

◆ AnsiString FloatToStrF(long double value, TStringFloatFormat format, int precision, int digits)
浮動小数点数を文字列に変換して返す。詳細はヘルプを参照。

◆ AnsiString FmtLoadStr(int ident, const TVarRec* args, int size)
形式文字列を使って形式化された文字列を作って返す。詳細はヘルプを参照。

◆ AnsiString Format(const AnsiString& format, const TVarRec* args, int size)
形式文字列を使って形式化された文字列を作って返す。詳細はヘルプを参照。

◆ AnsiString FormatFloat(const AnsiString& format, const long double& value)
形式文字列を使って、value に指定された浮動小数点を形式化した文字列に変換して返す。詳細はヘルプを参照。

◆ wchar_t* WideChar(wchar_t* dest, int destsize)
文字列を wchar_t 文字列に変換する。

◆ AnsiString CurrToStr(Currency value)
value で指定された通貨変数を文字列に変換して返す。詳細はヘルプを参照。

◆ AnsiString CurrToStrF(Currency value, TStringFloatFormat format, int digits)
value で指定された通貨変数を文字列に変換して返す。詳細はヘルプを参照。

6.その他

◆ void Unique( )
文字列を一意に識別できる物にする。詳細はヘルプを参照。

◆ int WideCharBufSize( )
WideChar 関数で使用するバッファサイズを返す。

◆ AnsiString LoadStr(int ident)
アプリケーションの実行ファイルから文字列をロードする。

◆ AnsiString StringOfChar(char ch, int count)
文字 ch が count 個並んだ文字列を作る。