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