SFXAnsiString
AChar 型文字列を表すクラスです。
#include <SFXAnsiString.h.hpp>
class SFXAnsiString;
SFMTYPEDEFCLASS(SFXAnsiString)
解説
SFXAnsiString と SFXWideString
BREW には、シングルバイト文字またはマルチバイト文字を表す char 型と、
BREW 独自の 2 バイト文字を表す AECHAR 型があります。
SophiaFramewok では、これら 2 種類の文字型をそれぞれ AChar 型、WChar 型として定義しています。
文字列を表すクラスには、AChar 型の文字で構成される SFXAnsiString と、
WChar 型の文字で構成される SFXWideString の 2 種類があります。
文字列を空にする方法
文字列を空にする方法は 2 つあります。
ひとつは、空文字列を代入する、または パラメーターを "0" に設定して SFXAnsiString::SetLength 関数を呼び出す方法です。
もうひとつは、SFXAnsiString::Clear 関数を呼び出す方法です。
前者の方法では、ヒープは解放されません。ブロック アロケーションのサポートにより、文字列を作成するときにメモリを新たに確保することなく、このヒープ領域を利用できるので処理が速くなります。
後者の方法では、ヒープを解放します。解放したヒープは他の用途に利用できますが、その分、実行速度は遅くなります。
どちらを使うかは、実行速度とメモリ使用量のどちらを優先させるかで判断します。
例 710. 空文字列を代入する、または SFXAnsiString::SetLength 関数を呼び出す方法
SFXAnsiString str = "The best C++ Programming Environment for BREW";
str = "";
str.SetLength(0);
例 711. Clear 関数を呼び出す方法
SFXAnsiString str = "The best C++ Programming Environment for BREW";
str.Clear();
短い文字列を頻繁に処理するときは、SFXAnsiString::SetLength 関数を呼び出す方法が効率的です。
SFXAnsiString str;
str = "BREW";
...
str.SetLength(0);
...
str = "C++";
...
str.SetLength(0);
...
str = "GUI";
...
str.SetLength(0);
...
str = "XML";
...
Attach 関数 と Detach 関数
SFXAnsiString::Attach 関数は、AChar 型文字列の動作と管理権限を SFXAnsiString クラスのインスタンスにデリゲート(委譲)します。
そのため、AChar 型文字列のメモリを解放する必要がなくなります。
SFXAnsiString::Detach 関数はその逆の操作を行います。
SFXAnsiString::Set 関数や代入演算子 ( = ) では、データはコピーがされますが、
SFXAnsiString::Attach 関数や SFXAnsiString::Detach 関数では、データはコピーされません。
数百 KB もの文字列をコピーするためのヒープが無いとき、或いは、パフォーマンス劣化の問題を回避するときに利用します。
デリゲートとは : オブジェクト指向プログラミングにおいて、あるオブジェクトの振る舞いを別のオブジェクトに肩代わりして振る舞ってもらうことです。
日本語では、「委譲」と訳されます。
SFXAnsiString str;
ACharPtr ptr;
ptr = static_cast<ACharPtr>(MemoryAllocate(10240));
...
str.Attach(ptr, 10240);
・・・
SFXAnsiString str;
ACharPtr ptr;
SInt32 length;
str = "The best application for BREW.";
...
ptr = str.Detach(&length);
...
MemoryFree(ptr);
AttachSFXBuffer 関数 と DetachSFXBuffer 関数
SFXAnsiString と SFXBuffer のクラスのインスタンス間で動作と管理権限をデリゲート(委譲)するときに使います。
関連情報 : Attach 関数 と Detach 関数
メンバ
| パブリック関数 |
|
SFCError |
Add(
SFXAnsiStringConstRef string
) Add(
AChar character
) Add(
ACharConstPtr string
, SInt32 length = -1
)
追加します。
|
|
SFXAnsiString |
AsLower( Void )
小文字に変換します。
|
|
SInt32 |
AsSInt32(
SInt32 substitute = 0
)
SInt32 型に変換します。
|
|
UInt32 |
AsUInt32(
UInt32 substitute = 0
)
UInt32 型に変換します。
|
|
SFXAnsiString |
AsUpper( Void )
大文字に変換します。
|
|
SFCError |
Attach(
SFXAnsiStringPtr string
) Attach(
SFXBufferPtr buffer
) Attach(
ACharPtr string
, SInt32 length = -1
)
指定した文字列の動作と管理権限を SFXAnsiString クラスの文字列にデリゲート (委譲) します。
|
|
SFCError |
AttachSFXBuffer(
SFXBufferPtr buffer
)
[非推奨 API ( 廃止予定 API )]指定した SFXBuffer クラスのバッファーの動作と管理権限を SFXAnsiString クラスの文字列にデリゲート(委譲) します。
|
|
Void |
Clear( Void )
空にします。
|
|
SInt32 |
Compare(
SFXAnsiStringConstRef string
, Bool sensitive = true
) Compare(
ACharConstPtr string
, Bool sensitive = true
)
辞書順に比較します。
|
|
SFXAnsiString |
Concat(
SFXAnsiStringConstRef string
) Concat(
AChar character
) Concat(
ACharConstPtr string
, SInt32 length = -1
)
連結します。
|
|
SFCError |
Copy(
SInt32 index
, SFXAnsiStringConstRef string
) Copy(
SInt32 index
, ACharConstPtr string
, SInt32 length = -1
)
上書きします。
|
|
SFCError |
Detach(
SFXAnsiStringPtr string
)
SFXAnsiString クラスの文字列の動作と管理権限を指定したデータにデリゲート(委譲) します。
|
|
ACharPtr |
Detach(
SInt32Ptr length = null
)
SFXAnsiString クラスの文字列の動作と管理権限を指定したデータにデリゲート(委譲) します。
|
|
SFCError |
Detach(
SFXBufferPtr buffer
)
SFXAnsiString クラスの文字列の動作と管理権限を指定したデータにデリゲート(委譲) します。
|
|
SFCError |
DetachSFXBuffer(
SFXBufferPtr buffer
)
[非推奨 API ( 廃止予定 API )]SFXAnsiString クラスの文字列の動作と管理権限を SFXBuffer クラスのバッファーにデリゲート(委譲) します。
|
static SFXAnsiStringConstRef |
EmptyInstance( Void )
空文字列を取得します。
|
|
Bool |
EndsWith(
SFXAnsiStringConstRef string
, Bool sensitive = true
) EndsWith(
AChar character
, Bool sensitive = true
) EndsWith(
ACharConstPtr string
, Bool sensitive = true
)
指定した文字列で終わるか判定します。
|
|
Bool |
Equals(
SFXAnsiStringConstRef string
, Bool sensitive = true
) Equals(
ACharConstPtr string
, Bool sensitive = true
)
等しいか判定します。
|
|
Void |
Fill(
AChar character
)
指定した文字で埋めます。
|
|
SInt32 |
FirstIndexOf(
SFXAnsiStringConstRef string
, SInt32 index = SINT32_MINIMUM
, Bool sensitive = true
) FirstIndexOf(
AChar character
, SInt32 index = SINT32_MINIMUM
, Bool sensitive = true
) FirstIndexOf(
ACharConstPtr string
, SInt32 index = SINT32_MINIMUM
, Bool sensitive = true
)
先頭から検索してインデックスを取得します。
|
static SFXAnsiString |
Format(
va_ref< SFXAnsiStringConst > format
, ...
) Format(
WCharConstPtr format
, ...
) Format(
ACharConstPtr format
, ...
) Format(
va_ref< SFXWideStringConst > format
, ...
)
データを書式に従った文字列に設定し直します。
|
static SFXAnsiString |
FormatV(
SFXAnsiStringConstRef format
, va_list argument
) FormatV(
WCharConstPtr format
, va_list argument
) FormatV(
ACharConstPtr format
, va_list argument
) FormatV(
SFXWideStringConstRef format
, va_list argument
)
可変個引数リストを書式に従った文字列に設定し直します。
|
|
ACharPtr |
GetBuffer( Void )
文字列の内部バッファーへのポインターを取得します。
|
|
ACharConstPtr |
GetBuffer( Void )
文字列の内部バッファーへのポインターを取得します。
|
|
ACharConstPtr |
GetCString( Void )
文字列の内部バッファーへの const ポインターを取得します。(内部バッファーの内容を変更できません)
|
|
AChar |
GetChar(
SInt32 index
)
指定した位置の文字を取得します。
|
|
UInt16 |
GetCluster( Void )
内部バッファメモリのクラスタサイズを取得します。
|
|
SInt32 |
GetLength( Void )
文字数を取得します。
|
|
SInt32 |
GetLengthCString( Void )
先頭の null 文字までの文字数を取得します。
|
|
UInt16 |
GetThreshold( Void )
内部バッファサイズの最小値を取得します。
|
|
SFXAnsiString |
Insert(
SInt32 index
, SFXAnsiStringConstRef string
) Insert(
SInt32 index
, AChar character
) Insert(
SInt32 index
, ACharConstPtr string
, SInt32 length = -1
)
挿入します。
|
|
Bool |
IsAlpha( Void )
すべて英文字か判定します。
|
|
Bool |
IsAlphaDigit( Void )
すべて英数字か判定します。
|
|
Bool |
IsAscii( Void )
すべて ASCII 文字か判定します。
|
|
Bool |
IsControl( Void )
すべて制御文字か判定します。
|
|
Bool |
IsDigit( Void )
すべて数字か判定します。
|
|
Bool |
IsEmpty( Void )
長さが 0 か判定します。
|
|
Bool |
IsEmptyCString( Void )
先頭の文字が null 文字か判定します。
|
|
Bool |
IsGraph( Void )
すべて図形文字か判定します。
|
|
Bool |
IsHexDigit( Void )
すべて 16 進数で使う文字か判定します。
|
|
Bool |
IsLower( Void )
すべて小文字か判定します。
|
|
Bool |
IsNull( Void )
すべて null か判定します。
|
|
Bool |
IsPrint( Void )
すべて印字文字か判定します。
|
|
Bool |
IsPunct( Void )
すべて印字可能文字か判定します。( 空白文字、英数字は含みません )
|
|
Bool |
IsSpace( Void )
すべて空白文字、または改行文字か判定します。
|
|
Bool |
IsUpper( Void )
すべて大文字か判定します。
|
|
SInt32 |
LastIndexOf(
SFXAnsiStringConstRef string
, SInt32 index = SINT32_MAXIMUM
, Bool sensitive = true
) LastIndexOf(
AChar character
, SInt32 index = SINT32_MAXIMUM
, Bool sensitive = true
) LastIndexOf(
ACharConstPtr string
, SInt32 index = SINT32_MAXIMUM
, Bool sensitive = true
)
末尾から検索してインデックスを取得します。
|
|
SFCError |
Mul(
SInt32 repeat
)
指定した回数繰り返します。
|
|
SFXAnsiString |
Remove(
SInt32 begin
, SInt32 end
)
指定した範囲の文字列を消去します。
|
|
SFXAnsiString |
Replace(
SFXAnsiStringConstRef fstring
, SFXAnsiStringConstRef tstring
, Bool sensitive = true
) Replace(
AChar fcharacter
, ACharConstPtr tstring
, SInt32 tlength
, Bool sensitive = true
) Replace(
AChar fcharacter
, ACharConstPtr tstring
, Bool sensitive = true
) Replace(
ACharConstPtr fstring
, SInt32 flength
, AChar tcharacter
, Bool sensitive = true
) Replace(
ACharConstPtr fstring
, AChar tcharacter
, Bool sensitive = true
) Replace(
AChar fcharacter
, AChar tcharacter
, Bool sensitive = true
) Replace(
AChar fcharacter
, SFXAnsiStringConstRef tstring
, Bool sensitive = true
) Replace(
SFXAnsiStringConstRef fstring
, AChar tcharacter
, Bool sensitive = true
) Replace(
ACharConstPtr fstring
, SInt32 flength
, ACharConstPtr tstring
, SInt32 tlength
, Bool sensitive = true
) Replace(
ACharConstPtr fstring
, ACharConstPtr tstring
, Bool sensitive = true
) Replace(
ACharConstPtr fstring
, SInt32 flength
, SFXAnsiStringConstRef tstring
, Bool sensitive = true
) Replace(
ACharConstPtr fstring
, SFXAnsiStringConstRef tstring
, Bool sensitive = true
) Replace(
SFXAnsiStringConstRef fstring
, ACharConstPtr tstring
, SInt32 tlength
, Bool sensitive = true
) Replace(
SFXAnsiStringConstRef fstring
, ACharConstPtr tstring
, Bool sensitive = true
)
置換します。
|
|
SFCError |
Set(
SFXAnsiStringConstRef string
) Set(
SFXBufferConstRef buffer
) Set(
AChar character
) Set(
WCharConstPtr string
, SInt32 length = -1
) Set(
ACharConstPtr string
, SInt32 length = -1
) Set(
SFXWideStringConstRef string
)
設定します。
|
|
SFCError |
SetChar(
SInt32 index
, AChar character
)
指定した位置の文字を設定します。
|
|
Void |
SetCluster(
UInt16 size
)
内部バッファ メモリのクラスタ サイズを設定します。
|
|
SFCError |
SetLength(
SInt32 length
)
文字数を設定します。
|
|
Void |
SetThreshold(
UInt16 size
)
内部バッファ サイズの最小値を設定します。
|
|
Bool |
StartsWith(
SFXAnsiStringConstRef string
, Bool sensitive = true
) StartsWith(
AChar character
, Bool sensitive = true
) StartsWith(
ACharConstPtr string
, Bool sensitive = true
)
指定した文字列で始まるか判定します。
|
|
SFCError |
Sub(
SFXAnsiStringConstRef string
) Sub(
AChar character
) Sub(
ACharConstPtr string
, SInt32 length = -1
)
末尾から文字列を削除します。
|
|
SFXAnsiString |
Substring(
SInt32 begin
, SInt32 end
)
部分文字列を取得します。
|
|
Void |
ToLower( Void )
小文字に変換します。
|
|
Void |
ToUpper( Void )
大文字に変換します。
|
|
SFXAnsiString |
Trim(
SFXAnsiStringConstRef string
, Bool sensitive = true
) Trim( Void ) Trim(
AChar character
, Bool sensitive = true
) Trim(
ACharConstPtr string
, Bool sensitive = true
)
先頭と末尾から空白や任意の文字を削除します。
|
|
SFXAnsiString |
TrimLeft(
SFXAnsiStringConstRef string
, Bool sensitive = true
) TrimLeft( Void ) TrimLeft(
AChar character
, Bool sensitive = true
) TrimLeft(
ACharConstPtr string
, Bool sensitive = true
)
先頭から空白や任意の文字を削除します。
|
|
SFXAnsiString |
TrimRight(
SFXAnsiStringConstRef string
, Bool sensitive = true
) TrimRight( Void ) TrimRight(
AChar character
, Bool sensitive = true
) TrimRight(
ACharConstPtr string
, Bool sensitive = true
)
末尾から空白や任意の文字を削除します。
|
|
SFXAnsiString |
Truncate( Void )
先頭の null 文字までの文字列を取得します。
|
|
SFXAnsiStringRef |
operator*=(
SInt32 repeat
)
指定した回数繰り返します。
|
|
SFXAnsiStringRef |
operator+=(
SFXAnsiStringConstRef string
) operator+=(
AChar character
) operator+=(
ACharConstPtr string
)
追加します。
|
|
SFXAnsiStringRef |
operator-=(
SFXAnsiStringConstRef string
) operator-=(
AChar character
) operator-=(
ACharConstPtr string
)
末尾から文字列を削除します。
|
|
SFXAnsiStringRef |
operator<<(
SFXAnsiStringRef left
, SFXAnsiStringConstRef right
) operator<<(
SFXAnsiStringRef left
, AChar right
) operator<<(
SFXAnsiStringRef left
, WCharConstPtr right
) operator<<(
SFXAnsiStringRef left
, ACharConstPtr right
) operator<<(
SFXAnsiStringRef left
, SFXWideStringConstRef right
)
追加します。
|
|
SFXAnsiStringRef |
operator=(
SFXAnsiStringConstRef string
) operator=(
WCharConstPtr string
) operator=(
ACharConstPtr string
) operator=(
SFXWideStringConstRef string
)
代入します。
|
|
ACharRef |
operator[](
SInt32 index
)
指定した位置の文字を取得します。
|
|
ACharConstRef |
operator[](
SInt32 index
)
指定した位置の文字を取得します。
|
|
Bool |
operator==(
SFXAnsiStringConstRef left
, SFXAnsiStringConstRef right
) operator==(
WCharConstPtr left
, SFXAnsiStringConstRef right
) operator==(
ACharConstPtr left
, SFXAnsiStringConstRef right
) operator==(
SFXAnsiStringConstRef left
, WCharConstPtr right
) operator==(
SFXAnsiStringConstRef left
, ACharConstPtr right
) operator==(
SFXAnsiStringConstRef left
, SFXWideStringConstRef right
)
== の関係を判定します。
|
|
Bool |
operator>=(
SFXAnsiStringConstRef left
, SFXAnsiStringConstRef right
) operator>=(
WCharConstPtr left
, SFXAnsiStringConstRef right
) operator>=(
ACharConstPtr left
, SFXAnsiStringConstRef right
) operator>=(
SFXAnsiStringConstRef left
, WCharConstPtr right
) operator>=(
SFXAnsiStringConstRef left
, ACharConstPtr right
) operator>=(
SFXAnsiStringConstRef left
, SFXWideStringConstRef right
)
>= の関係を判定します。
|
|
Bool |
operator>(
SFXAnsiStringConstRef left
, SFXAnsiStringConstRef right
) operator>(
WCharConstPtr left
, SFXAnsiStringConstRef right
) operator>(
ACharConstPtr left
, SFXAnsiStringConstRef right
) operator>(
SFXAnsiStringConstRef left
, WCharConstPtr right
) operator>(
SFXAnsiStringConstRef left
, ACharConstPtr right
) operator>(
SFXAnsiStringConstRef left
, SFXWideStringConstRef right
)
> の関係を判定します。
|
|
Bool |
operator<=(
SFXAnsiStringConstRef left
, SFXAnsiStringConstRef right
) operator<=(
WCharConstPtr left
, SFXAnsiStringConstRef right
) operator<=(
ACharConstPtr left
, SFXAnsiStringConstRef right
) operator<=(
SFXAnsiStringConstRef left
, WCharConstPtr right
) operator<=(
SFXAnsiStringConstRef left
, ACharConstPtr right
) operator<=(
SFXAnsiStringConstRef left
, SFXWideStringConstRef right
)
<= の関係を判定します。
|
|
Bool |
operator<(
SFXAnsiStringConstRef left
, SFXAnsiStringConstRef right
) operator<(
WCharConstPtr left
, SFXAnsiStringConstRef right
) operator<(
ACharConstPtr left
, SFXAnsiStringConstRef right
) operator<(
SFXAnsiStringConstRef left
, WCharConstPtr right
) operator<(
SFXAnsiStringConstRef left
, ACharConstPtr right
) operator<(
SFXAnsiStringConstRef left
, SFXWideStringConstRef right
)
< の関係を判定します。
|
|
SFXAnsiString |
operator-(
SFXAnsiStringConstRef left
, SFXAnsiStringConstRef right
) operator-(
AChar left
, SFXAnsiStringConstRef right
) operator-(
SFXAnsiStringConstRef left
, AChar right
) operator-(
WCharConstPtr left
, SFXAnsiStringConstRef right
) operator-(
ACharConstPtr left
, SFXAnsiStringConstRef right
) operator-(
SFXAnsiStringConstRef left
, WCharConstPtr right
) operator-(
SFXAnsiStringConstRef left
, ACharConstPtr right
) operator-(
SFXAnsiStringConstRef left
, SFXWideStringConstRef right
)
末尾から文字列を削除します。
|
|
SFXAnsiString |
operator*(
SFXAnsiStringConstRef left
, SInt32 right
)
指定した回数繰り返します。
|
|
Bool |
operator!=(
SFXAnsiStringConstRef left
, SFXAnsiStringConstRef right
) operator!=(
WCharConstPtr left
, SFXAnsiStringConstRef right
) operator!=(
ACharConstPtr left
, SFXAnsiStringConstRef right
) operator!=(
SFXAnsiStringConstRef left
, WCharConstPtr right
) operator!=(
SFXAnsiStringConstRef left
, ACharConstPtr right
) operator!=(
SFXAnsiStringConstRef left
, SFXWideStringConstRef right
)
!= の関係を判定します。
|
|
SFXAnsiString |
operator+(
SFXAnsiStringConstRef left
, SFXAnsiStringConstRef right
) operator+(
AChar left
, SFXAnsiStringConstRef right
) operator+(
SFXAnsiStringConstRef left
, AChar right
) operator+(
WCharConstPtr left
, SFXAnsiStringConstRef right
) operator+(
ACharConstPtr left
, SFXAnsiStringConstRef right
) operator+(
SFXAnsiStringConstRef left
, WCharConstPtr right
) operator+(
SFXAnsiStringConstRef left
, ACharConstPtr right
) operator+(
SFXAnsiStringConstRef left
, SFXWideStringConstRef right
)
追加します。
|
| グローバル関数 |
|
Bool |
operator==(
SFXAnsiStringConstRef left
, SFXAnsiStringConstRef right
) operator==(
WCharConstPtr left
, SFXAnsiStringConstRef right
) operator==(
ACharConstPtr left
, SFXAnsiStringConstRef right
) operator==(
SFXAnsiStringConstRef left
, WCharConstPtr right
) operator==(
SFXAnsiStringConstRef left
, ACharConstPtr right
) operator==(
SFXAnsiStringConstRef left
, SFXWideStringConstRef right
)
== の関係を判定します。
|
|
Bool |
operator>=(
SFXAnsiStringConstRef left
, SFXAnsiStringConstRef right
) operator>=(
WCharConstPtr left
, SFXAnsiStringConstRef right
) operator>=(
ACharConstPtr left
, SFXAnsiStringConstRef right
) operator>=(
SFXAnsiStringConstRef left
, WCharConstPtr right
) operator>=(
SFXAnsiStringConstRef left
, ACharConstPtr right
) operator>=(
SFXAnsiStringConstRef left
, SFXWideStringConstRef right
)
>= の関係を判定します。
|
|
Bool |
operator>(
SFXAnsiStringConstRef left
, SFXAnsiStringConstRef right
) operator>(
WCharConstPtr left
, SFXAnsiStringConstRef right
) operator>(
ACharConstPtr left
, SFXAnsiStringConstRef right
) operator>(
SFXAnsiStringConstRef left
, WCharConstPtr right
) operator>(
SFXAnsiStringConstRef left
, ACharConstPtr right
) operator>(
SFXAnsiStringConstRef left
, SFXWideStringConstRef right
)
> の関係を判定します。
|
|
Bool |
operator<=(
SFXAnsiStringConstRef left
, SFXAnsiStringConstRef right
) operator<=(
WCharConstPtr left
, SFXAnsiStringConstRef right
) operator<=(
ACharConstPtr left
, SFXAnsiStringConstRef right
) operator<=(
SFXAnsiStringConstRef left
, WCharConstPtr right
) operator<=(
SFXAnsiStringConstRef left
, ACharConstPtr right
) operator<=(
SFXAnsiStringConstRef left
, SFXWideStringConstRef right
)
<= の関係を判定します。
|
|
Bool |
operator<(
SFXAnsiStringConstRef left
, SFXAnsiStringConstRef right
) operator<(
WCharConstPtr left
, SFXAnsiStringConstRef right
) operator<(
ACharConstPtr left
, SFXAnsiStringConstRef right
) operator<(
SFXAnsiStringConstRef left
, WCharConstPtr right
) operator<(
SFXAnsiStringConstRef left
, ACharConstPtr right
) operator<(
SFXAnsiStringConstRef left
, SFXWideStringConstRef right
)
< の関係を判定します。
|
|
SFXAnsiString |
operator-(
SFXAnsiStringConstRef left
, SFXAnsiStringConstRef right
) operator-(
AChar left
, SFXAnsiStringConstRef right
) operator-(
SFXAnsiStringConstRef left
, AChar right
) operator-(
WCharConstPtr left
, SFXAnsiStringConstRef right
) operator-(
ACharConstPtr left
, SFXAnsiStringConstRef right
) operator-(
SFXAnsiStringConstRef left
, WCharConstPtr right
) operator-(
SFXAnsiStringConstRef left
, ACharConstPtr right
) operator-(
SFXAnsiStringConstRef left
, SFXWideStringConstRef right
)
末尾から文字列を削除します。
|
|
SFXAnsiString |
operator*(
SFXAnsiStringConstRef left
, SInt32 right
)
指定した回数繰り返します。
|
|
Bool |
operator!=(
SFXAnsiStringConstRef left
, SFXAnsiStringConstRef right
) operator!=(
WCharConstPtr left
, SFXAnsiStringConstRef right
) operator!=(
ACharConstPtr left
, SFXAnsiStringConstRef right
) operator!=(
SFXAnsiStringConstRef left
, WCharConstPtr right
) operator!=(
SFXAnsiStringConstRef left
, ACharConstPtr right
) operator!=(
SFXAnsiStringConstRef left
, SFXWideStringConstRef right
)
!= の関係を判定します。
|
|
SFXAnsiString |
operator+(
SFXAnsiStringConstRef left
, SFXAnsiStringConstRef right
) operator+(
AChar left
, SFXAnsiStringConstRef right
) operator+(
SFXAnsiStringConstRef left
, AChar right
) operator+(
WCharConstPtr left
, SFXAnsiStringConstRef right
) operator+(
ACharConstPtr left
, SFXAnsiStringConstRef right
) operator+(
SFXAnsiStringConstRef left
, WCharConstPtr right
) operator+(
SFXAnsiStringConstRef left
, ACharConstPtr right
) operator+(
SFXAnsiStringConstRef left
, SFXWideStringConstRef right
)
追加します。
|
SFXAnsiString::SFXAnsiString
SFXAnsiString クラスのコンストラクタです。
[ public, explicit ]
SFXAnsiString(Void);
[ public ]
SFXAnsiString(
SFXAnsiStringConstRef string // コピー元の文字列
);
[ public ]
SFXAnsiString(
SFXWideStringConstRef string // コピー元の文字列
);
[ public ]
SFXAnsiString(
ACharConstPtr string // コピー元の AChar ポインター
SInt32 length = -1 // 文字列の文字数
);
[ public ]
SFXAnsiString(
WCharConstPtr string // コピー元の WChar ポインター
SInt32 length = -1 // 文字列の文字数
);
[ public, explicit ]
SFXAnsiString(
AChar character // AChar 文字
);
[ public, explicit ]
SFXAnsiString(
SFXBufferConstRef buffer // コピー元のバッファ
);
[ public, explicit ]
SFXAnsiString(
UInt16 threshold // バッファサイズの最小値
UInt16 cluster // クラスタサイズ
);
解説
SFXAnsiString クラスのコンストラクタに SFXAnsiString クラス、または SFXWideString クラスを指定すると、
その文字列をコピーします。
AChar や WChar のポインターを指定すると、null 終端文字列と解釈してコピーします。
長さを指定すると null を含んだバイナリ文字列を処理できます。
AChar を指定すると、 1 文字だけを作成します。
SFXAnsiString::~SFXAnsiString
SFXAnsiString クラスのデストラクタです。
[ public ]
~SFXAnsiString(Void);
SFXAnsiString::Add
追加します。
戻り値
- 成功したとき : SFERR_NO_ERROR
- 失敗したとき : SFERR_FAILED
- メモリ不足のとき : SFERR_NO_MEMORY
解説
Add 関数は文字列に影響を及ぼします。
元の文字列を保持しておく場合は、Concat 関数を使います。
SFXAnsiString::AsLower
小文字に変換します。
解説
AsLower 関数を呼び出しても、元の文字列は変化しません。
SFXAnsiString::AsSInt32
SInt32 型に変換します。
[ public, const ]
SInt32 AsSInt32(
SInt32 substitute = 0 // 変換失敗時の値
);
解説
変換できなかった場合は substitute に指定した値を返します。
SFXAnsiString::AsUInt32
UInt32 型に変換します。
[ public, const ]
UInt32 AsUInt32(
UInt32 substitute = 0 // 変換失敗時の値
);
解説
変換できなかった場合は substitute に指定した値を返します。
SFXAnsiString::AsUpper
大文字に変換します。
解説
AsUpper 関数を呼び出しても、元の文字列は変化しません。
SFXAnsiString::Attach
指定した文字列の動作と管理権限を SFXAnsiString クラスの文字列にデリゲート (委譲) します。
戻り値
- 成功したとき : SFERR_NO_ERROR
- 引数が不正なとき : SFERR_INVALID_PARAM
解説
指定した文字列はコピーされないので、SFXAnsiString::Set 関数よりも効率的で、大容量の文字列データ処理時のパフォーマンス劣化やメモリ不足の問題を回避できます。
文字列に割り当てられたメモリは、SFXAnsiString クラスの文字列が解放されると自動的に解放されます。
文字列に割り当てられたメモリを明示的に解放するには、SFXAnsiString::Detach 関数を呼び出す必要があります。
使用例
SFXAnsiString str;
ACharPtr ptr;
ptr = static_cast<ACharPtr>(MemoryAllocate(10240));
...
str.Attach(ptr, 10240);
・・・
SFXAnsiString::AttachSFXBuffer
[非推奨 API ( 廃止予定 API )]指定した SFXBuffer クラスのバッファーの動作と管理権限を SFXAnsiString クラスの文字列にデリゲート(委譲) します。
戻り値
- 成功したとき : SFERR_NO_ERROR
- SFXBuffer のポインターが null のとき、または引数が不正なとき : SFERR_INVALID_PARAM
解説
SFXBuffer クラスのバッファーのデータはコピーされないので、SFXAnsiString::Set 関数よりも効率的で、大容量の文字列データ処理時のパフォーマンス劣化やメモリ不足の問題を回避できます。
SFXBuffer クラスのバッファーは、SFXAnsiString クラスのインスタンスが解放されると自動的に解放されます。
SFXBuffer クラスのバッファーを明示的に解放するには、SFXAnsiString::DetachSFXBuffer 関数を呼び出す必要があります。
![[Note]](images/note.png) |
非推奨 API ( 廃止予定 API ) |
この API は、SophiaFramework UNIVERSE 6.0 では廃止される予定です。
この API の替わりに SFXAnsiString::Attach(SFXBufferPtr buffer) 関数を利用することを推奨します。
|
使用例
SFXAnsiString str;
SFXBuffer buffer;
buffer.SetSize(10240);
...
str.AttachSFXBuffer(&buffer);
・・・
SFXAnsiString::Clear
空にします。
[ public ]
Void Clear(Void);
SFXAnsiString::Compare
辞書順に比較します。
戻り値
- string より小さいとき : 負の値
- string と等しいとき : 0
- string より大きいとき : 正の値
SFXAnsiString::Concat
連結します。
解説
SFXAnsiString::Concat 関数は現在の文字列の最後に、指定した文字列を連結して返します。
元の文字列は変更されません。
SFXAnsiString::Copy
上書きします。
戻り値
- 成功したとき : SFERR_NO_ERROR
- 文字列の終端を越えるとき : SFERR_INVALID_PARAM
解説
上書きする文字列が元の文字列の終端を越える場合は SFERR_INVALID_PARAM を返し、コピーは行われません。
SFXAnsiString::Detach
SFXAnsiString クラスの文字列の動作と管理権限を指定したデータにデリゲート(委譲) します。
戻り値
委譲先が AChar 型文字列である場合、SFXAnsiString クラス文字列が持っている AChar 型文字列を返します。
それ以外の場合は SFCError 型データ値。
使用例
SFXAnsiString str;
ACharPtr ptr;
SInt32 length;
str = "The best application for BREW.";
...
ptr = str.Detach(&length);
...
MemoryFree(ptr);
SFXAnsiString::DetachSFXBuffer
[非推奨 API ( 廃止予定 API )]SFXAnsiString クラスの文字列の動作と管理権限を SFXBuffer クラスのバッファーにデリゲート(委譲) します。
戻り値
- 成功したとき : SFERR_NO_ERROR
- SFXBuffer のポインターが null のとき、または引数が不正なとき : SFERR_INVALID_PARAM
解説
SFXAnsiString クラスの文字列はコピーされないので、大容量の文字列データ処理時のパフォーマンス劣化やメモリ不足の問題を回避できます。
![[Note]](images/note.png) |
非推奨 API ( 廃止予定 API ) |
この API は、SophiaFramework UNIVERSE 6.0 では廃止される予定です。
この API の替わりに SFXAnsiString::Detach(SFXBufferPtr buffer) 関数を利用することを推奨します。
|
使用例
SFXAnsiString str;
SFXBuffer buffer;
str = "The best application for BREW.";
...
str.DetachSFXBuffer(&buffer);
・・・
SFXAnsiString::EmptyInstance
空文字列を取得します。
解説
関数の戻り値として空文字列のインスタンスへの参照を返すときに使います。
SFXAnsiString::EndsWith
指定した文字列で終わるか判定します。
戻り値
- 指定した文字列で終わるとき : true
- 指定した文字列で終わらないとき : false
SFXAnsiString::Equals
等しいか判定します。
戻り値
- 等しいとき : true
- 異なるとき : false
SFXAnsiString::Fill
指定した文字で埋めます。
[ public ]
Void Fill(
AChar character // 文字
);
SFXAnsiString::FirstIndexOf
先頭から検索してインデックスを取得します。
[ public, const ]
SInt32 FirstIndexOf(
SFXAnsiStringConstRef string // 検索する文字列
SInt32 index = SINT32_MINIMUM // 検索開始位置
Bool sensitive = true // 大小文字を区別するか
);
[ public, const ]
SInt32 FirstIndexOf(
ACharConstPtr string // 検索する文字列
SInt32 index = SINT32_MINIMUM // 検索開始位置
Bool sensitive = true // 大小文字を区別するか
);
[ public, const ]
SInt32 FirstIndexOf(
AChar character // 検索する文字
SInt32 index = SINT32_MINIMUM // 検索開始位置
Bool sensitive = true // 大小文字を区別するか
);
戻り値
- 成功したとき : 見つかった位置のインデックス
- 失敗したとき : -1
解説
文字列を先頭から末尾に向かって検索し、最初に見つかった位置のインデックスを取得します。
検索開始位置を指定することで、先頭以外の位置から検索できます。
SFXAnsiString::Format
データを書式に従った文字列に設定し直します。
解説
書式は C 言語の printf 関数とほぼ同じですが、浮動小数点数の書式は使えません。
使用例
SIntN year = 2003;
SIntN month = 8;
SFXAnsiString str = SFXAnsiString::Format("%d年%d月", year, month);
SFXAnsiString::FormatV
可変個引数リストを書式に従った文字列に設定し直します。
解説
書式は C 言語の printf 関数とほぼ同じですが、浮動小数点数の書式は使えません。
使用例
SFXAnsiString MyClass::variableArgument(SInt32 arg_num , ...)
{
va_list argument;
va_start(argument, arg_num);
SFXAnsiString str = SFXAnsiString::FormatV("%d年%d月%d日%d時%d分%d秒、天気は%sです。", argument);
va_end(argument);
return str;
}
SFXAnsiString str = variableArgument(7, 2007, 7, 17, 17, 37, 50,"雨");