前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0
SFXAnsiString
AChar 型文字列を表すクラスです。
#include <SFXAnsiString.h.hpp>
class SFXAnsiString;
SFMTYPEDEFCLASS(SFXAnsiString)

協調図

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;

// メモリを割り当て、AChar 型文字列にキャストする
ptr = static_cast<ACharPtr>(MemoryAllocate(10240)); 
...

// AChar 型文字列 ptr の動作と管理権限を SFXAnsiString クラスのインスタンス str にデリゲートする
str.Attach(ptr, 10240);
// 以降、AChar 型文字列 ptr を SFXAnsiString クラスのインスタンス str として操作できる

・・・

// 使用後、割り当てたメモリは自動的に解放される 
SFXAnsiString str;
ACharPtr ptr;
SInt32 length;

str = "The best application for BREW.";

...

// SFXAnsiString クラスのインスタンス str の動作と管理権限を AChar 型文字列 ptr にデリゲートする
ptr = str.Detach(&length);
// 以降、SFXAnsiString クラスのインスタンス を AChar 型文字列 ptr として操作する

...

// 使用後、AChar 型文字列 ptr のメモリを解放する必要がある
MemoryFree(ptr);

AttachSFXBuffer 関数 と DetachSFXBuffer 関数

SFXAnsiString と SFXBuffer のクラスのインスタンス間で動作と管理権限をデリゲート(委譲)するときに使います。

関連情報 : Attach 関数 と Detach 関数

参照

SFXWideString | SFXBuffer

メンバ

コンストラクタ/デストラクタ
SFXAnsiString( Void )
SFXAnsiString( SFXAnsiStringConstRef string )
SFXAnsiString( SFXWideStringConstRef string )
SFXAnsiString( ACharConstPtr string , SInt32 length = -1 )
SFXAnsiString( WCharConstPtr string , SInt32 length = -1 )
SFXAnsiString( AChar character )
SFXAnsiString( SFXBufferConstRef buffer )
SFXAnsiString( UInt16 threshold , UInt16 cluster )
SFXAnsiString クラスのコンストラクタです。
~SFXAnsiString( Void )
SFXAnsiString クラスのデストラクタです。
パブリック関数
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 )
追加します。
DefaultEnum
内部で使うヒープ サイズの閾値とクラスタ サイズの既定値を表します。
グローバル関数
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::Set | SFXAnsiString::operator=


SFXAnsiString::~SFXAnsiString
SFXAnsiString クラスのデストラクタです。
[ public ]
~SFXAnsiString(Void);

解説

内部の文字列バッファは解放されます。


SFXAnsiString::Add
追加します。
[ public ]
SFCError Add(
    SFXAnsiStringConstRef string   // 追加する文字列
);
[ public ]
SFCError Add(
    ACharConstPtr string   // 追加する文字列
    SInt32 length = -1     // 文字列の文字数
);
[ public ]
SFCError Add(
    AChar character   // 追加する文字
);

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 失敗したとき : SFERR_FAILED
  • メモリ不足のとき : SFERR_NO_MEMORY

解説

Add 関数は文字列に影響を及ぼします。 元の文字列を保持しておく場合は、Concat 関数を使います。

参照

SFXAnsiString::Concat | SFXAnsiString::Sub | SFXAnsiString::Mul | SFXAnsiString::operator<< | operator+ | SFXAnsiString::operator+=


SFXAnsiString::AsLower
小文字に変換します。
[ public, const ]
SFXAnsiString AsLower(Void);

解説

AsLower 関数を呼び出しても、元の文字列は変化しません。

参照

SFXAnsiString::AsUpper | SFXAnsiString::ToLower


SFXAnsiString::AsSInt32
SInt32 型に変換します。
[ public, const ]
SInt32 AsSInt32(
    SInt32 substitute = 0   // 変換失敗時の値
);

解説

変換できなかった場合は substitute に指定した値を返します。

参照

SFXAnsiString::AsUInt32


SFXAnsiString::AsUInt32
UInt32 型に変換します。
[ public, const ]
UInt32 AsUInt32(
    UInt32 substitute = 0   // 変換失敗時の値
);

解説

変換できなかった場合は substitute に指定した値を返します。

参照

SFXAnsiString::AsSInt32


SFXAnsiString::AsUpper
大文字に変換します。
[ public, const ]
SFXAnsiString AsUpper(Void);

解説

AsUpper 関数を呼び出しても、元の文字列は変化しません。

参照

SFXAnsiString::AsLower | SFXAnsiString::ToUpper


SFXAnsiString::Attach
指定した文字列の動作と管理権限を SFXAnsiString クラスの文字列にデリゲート (委譲) します。
[ public ]
SFCError Attach(
    SFXAnsiStringPtr string   // 委譲元の SFXAnsiString クラスの文字列
);
[ public ]
SFCError Attach(
    ACharPtr string      // 委譲元の AChar 型文字列
    SInt32 length = -1   // 委譲元の文字列の文字数
);
[ public ]
SFCError Attach(
    SFXBufferPtr buffer   // 委譲元の SFXBuffer クラスのバッファー
);

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 引数が不正なとき : SFERR_INVALID_PARAM

解説

指定した文字列はコピーされないので、SFXAnsiString::Set 関数よりも効率的で、大容量の文字列データ処理時のパフォーマンス劣化やメモリ不足の問題を回避できます。

文字列に割り当てられたメモリは、SFXAnsiString クラスの文字列が解放されると自動的に解放されます。 文字列に割り当てられたメモリを明示的に解放するには、SFXAnsiString::Detach 関数を呼び出す必要があります。

使用例

SFXAnsiString str;
ACharPtr ptr;

// メモリを割り当て、AChar 型文字列にキャストする
ptr = static_cast<ACharPtr>(MemoryAllocate(10240));

...

// AChar 型文字列 ptr の動作と管理権限を SFXAnsiString クラスの文字列 str にデリゲートする
str.Attach(ptr, 10240);
// 以降、AChar 型文字列 ptr を SFXAnsiString クラスの文字列 str として操作できる

・・・

// 使用後、割り当てたメモリは自動的に解放される 

参照

SFXAnsiString::Detach


SFXAnsiString::AttachSFXBuffer
[非推奨 API ( 廃止予定 API )]指定した SFXBuffer クラスのバッファーの動作と管理権限を SFXAnsiString クラスの文字列にデリゲート(委譲) します。
[ public ]
SFCError AttachSFXBuffer(
    SFXBufferPtr buffer   // 委譲元の SFXBuffer クラスのバッファー
);

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • SFXBuffer のポインターが null のとき、または引数が不正なとき : SFERR_INVALID_PARAM

解説

SFXBuffer クラスのバッファーのデータはコピーされないので、SFXAnsiString::Set 関数よりも効率的で、大容量の文字列データ処理時のパフォーマンス劣化やメモリ不足の問題を回避できます。

SFXBuffer クラスのバッファーは、SFXAnsiString クラスのインスタンスが解放されると自動的に解放されます。 SFXBuffer クラスのバッファーを明示的に解放するには、SFXAnsiString::DetachSFXBuffer 関数を呼び出す必要があります。

[Note] 非推奨 API ( 廃止予定 API )

この API は、SophiaFramework UNIVERSE 6.0 では廃止される予定です。 この API の替わりに SFXAnsiString::Attach(SFXBufferPtr buffer) 関数を利用することを推奨します。

使用例

SFXAnsiString str;
SFXBuffer buffer;

// SFXBuffer クラスのバッファー buffer にメモリを割り当てる
buffer.SetSize(10240);

...

// SFXBuffer クラスのバッファー buffer の動作と管理権限を SFXAnsiString クラスの文字列 str にデリゲートする
str.AttachSFXBuffer(&buffer);
// 以降、SFXBuffer クラスのバッファー buffer 型文字列 ptr を SFXAnsiString クラスの文字列 str として操作できる

・・・

// 使用後、割り当てたメモリは自動的に解放される 

参照

SFXAnsiString::Attach | SFXAnsiString::Detach | SFXAnsiString::DetachSFXBuffer


SFXAnsiString::Clear
空にします。
[ public ]
Void Clear(Void);

解説

ヒープを解放します。


SFXAnsiString::Compare
辞書順に比較します。
[ public, const ]
SInt32 Compare(
    SFXAnsiStringConstRef string   // 比較する文字列
    Bool sensitive = true          // 大小文字を区別するか
);
[ public, const ]
SInt32 Compare(
    ACharConstPtr string    // 比較する文字列
    Bool sensitive = true   // 大小文字を区別するかどうか
);

戻り値

  • string より小さいとき : 負の値
  • string と等しいとき : 0
  • string より大きいとき : 正の値

参照

SFXAnsiString::Equals | operator== | operator!=


SFXAnsiString::Concat
連結します。
[ public, const ]
SFXAnsiString Concat(
    SFXAnsiStringConstRef string   // 連結する文字列
);
[ public, const ]
SFXAnsiString Concat(
    ACharConstPtr string   // 連結する文字列
    SInt32 length = -1     // 文字列の文字数
);
[ public, const ]
SFXAnsiString Concat(
    AChar character   // 連結する文字
);

戻り値

連結後の文字列を返します。

解説

SFXAnsiString::Concat 関数は現在の文字列の最後に、指定した文字列を連結して返します。 元の文字列は変更されません。

参照

SFXAnsiString::Add | operator+ | SFXAnsiString::operator+=


SFXAnsiString::Copy
上書きします。
[ public ]
SFCError Copy(
    SInt32 index                   // 上書き開始位置
    SFXAnsiStringConstRef string   // コピーする文字列
);
[ public ]
SFCError Copy(
    SInt32 index           // 上書き開始位置
    ACharConstPtr string   // コピーする文字列
    SInt32 length = -1     // 文字列の長さ
);

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 文字列の終端を越えるとき : SFERR_INVALID_PARAM

解説

上書きする文字列が元の文字列の終端を越える場合は SFERR_INVALID_PARAM を返し、コピーは行われません。


SFXAnsiString::Detach
SFXAnsiString クラスの文字列の動作と管理権限を指定したデータにデリゲート(委譲) します。
[ public ]
SFCError Detach(
    SFXAnsiStringPtr string   // 委譲先の SFXAnsiString クラスの文字列
);
[ public ]
ACharPtr Detach(
    SInt32Ptr length = null   // 委譲先の AChar 型文字列の文字数
);
[ public ]
SFCError Detach(
    SFXBufferPtr buffer   // 委譲先の SFXBuffer クラスのバッファー
);

戻り値

委譲先が AChar 型文字列である場合、SFXAnsiString クラス文字列が持っている AChar 型文字列を返します。 それ以外の場合は SFCError 型データ値。

解説

SFXAnsiString クラス文字列はコピーされないので、SFXAnsiString::GetChar 関数よりも効率的で、大容量の文字列データ処理時のパフォーマンス劣化やメモリ不足の問題を回避できます。

使用例

SFXAnsiString str;
ACharPtr ptr;
SInt32 length;

str = "The best application for BREW.";

...

// SFXAnsiString クラスの文字列 str の動作と管理権限を AChar 型の文字列 ptr にデリゲートする
ptr = str.Detach(&length);
// 以降、SFXAnsiString クラスの文字列 を AChar 型文字列 ptr として操作する

...

// 使用後、AChar 型文字列 ptr のメモリを解放する必要がある
MemoryFree(ptr);

参照

SFXAnsiString::Attach


SFXAnsiString::DetachSFXBuffer
[非推奨 API ( 廃止予定 API )]SFXAnsiString クラスの文字列の動作と管理権限を SFXBuffer クラスのバッファーにデリゲート(委譲) します。
[ public ]
SFCError DetachSFXBuffer(
    SFXBufferPtr buffer   // 委譲先の SFXBuffer クラスのバッファー
);

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • SFXBuffer のポインターが null のとき、または引数が不正なとき : SFERR_INVALID_PARAM

解説

SFXAnsiString クラスの文字列はコピーされないので、大容量の文字列データ処理時のパフォーマンス劣化やメモリ不足の問題を回避できます。

[Note] 非推奨 API ( 廃止予定 API )

この API は、SophiaFramework UNIVERSE 6.0 では廃止される予定です。 この API の替わりに SFXAnsiString::Detach(SFXBufferPtr buffer) 関数を利用することを推奨します。

使用例

SFXAnsiString str;
SFXBuffer buffer;

str = "The best application for BREW.";

...

// SFXAnsiString クラスの文字列 str の動作と管理権限を SFXBuffer クラスのバッファー buffer にデリゲートする
str.DetachSFXBuffer(&buffer);  
// 以降、SFXAnsiString クラスの文字列 str を SFXBuffer クラスのバッファー buffer として操作する

・・・

// 使用後、SFXBuffer クラスのバッファー buffer は自動的に解放される

参照

SFXAnsiString::Detach | SFXAnsiString::AttachSFXBuffer | SFXAnsiString::Attach


SFXAnsiString::EmptyInstance
空文字列を取得します。
[ public, static ]
SFXAnsiStringConstRef EmptyInstance(Void);

解説

関数の戻り値として空文字列のインスタンスへの参照を返すときに使います。


SFXAnsiString::EndsWith
指定した文字列で終わるか判定します。
[ public, const ]
Bool EndsWith(
    SFXAnsiStringConstRef string   // 調べる文字列
    Bool sensitive = true          // 大小文字を区別するか
);
[ public, const ]
Bool EndsWith(
    ACharConstPtr string    // 調べる文字列
    Bool sensitive = true   // 大小文字を区別するか
);
[ public, const ]
Bool EndsWith(
    AChar character         // 調べる文字
    Bool sensitive = true   // 大小文字を区別するか
);

戻り値

  • 指定した文字列で終わるとき : true
  • 指定した文字列で終わらないとき : false

参照

SFXAnsiString::StartsWith


SFXAnsiString::Equals
等しいか判定します。
[ public, const ]
Bool Equals(
    SFXAnsiStringConstRef string   // 比較対象の文字列
    Bool sensitive = true          // 大小文字を区別するか
);
[ public, const ]
Bool Equals(
    ACharConstPtr string    // 比較対象の文字列
    Bool sensitive = true   // 大小文字を区別するか
);

戻り値

  • 等しいとき : true
  • 異なるとき : false

参照

SFXAnsiString::Compare | operator== | operator!=


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::LastIndexOf


SFXAnsiString::Format
データを書式に従った文字列に設定し直します。
[ public, static ]
SFXAnsiString Format(
    va_ref< SFXAnsiStringConst > format   // 書式を表す文字列
    ...                                   // データ
);
[ public, static ]
SFXAnsiString Format(
    va_ref< SFXWideStringConst > format   // 書式を表す文字列
    ...                                   // データ
);
[ public, static ]
SFXAnsiString Format(
    ACharConstPtr format   // 書式を表す文字列
    ...                    // データ
);
[ public, static ]
SFXAnsiString Format(
    WCharConstPtr format   // 書式を表す文字列
    ...                    // データ
);

解説

書式は C 言語の printf 関数とほぼ同じですが、浮動小数点数の書式は使えません。

使用例

SIntN year = 2003;
SIntN month = 8;
SFXAnsiString str = SFXAnsiString::Format("%d年%d月", year, month);

参照

BREW API VSNPRINTF


SFXAnsiString::FormatV
可変個引数リストを書式に従った文字列に設定し直します。
[ public, static ]
SFXAnsiString FormatV(
    SFXAnsiStringConstRef format   // 書式を表す文字列
    va_list argument               // 可変個引数リスト
);
[ public, static ]
SFXAnsiString FormatV(
    SFXWideStringConstRef format   // 書式を表す文字列
    va_list argument               // 可変個引数リスト
);
[ public, static ]
SFXAnsiString FormatV(
    ACharConstPtr format   // 書式を表す文字列
    va_list argument       // 可変個引数リスト
);
[ public, static ]
SFXAnsiString FormatV(
    WCharConstPtr format   // 書式を表す文字列
    va_list argument       // 可変個引数リスト
);

解説

書式は 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,"雨");
// str = " 2007年7月17日17時37分50秒、天気は雨です。" 

参照