FineKernelToolKit 4.2.13
|
文字列板に表示する文字列を制御するクラス [詳解]
#include <FK/UniCode.h>
公開メンバ関数 | |
fk_UniStr (void) | |
コンストラクタ | |
virtual | ~fk_UniStr () |
デストラクタ | |
fk_UniStr (const fk_UniStr &) | |
コピーコンストラクタ | |
fk_UniStr & | operator= (const fk_UniStr &) |
単純代入演算子 | |
void | clear (void) |
初期化関数 | |
int | getLength (void) const |
文字列長参照関数 | |
bool | getLine (fk_UniStr *str) |
一行分取得関数 | |
void | markClear (void) |
マーク初期化関数 | |
bool | fgetLine (FILE *fp, fk_StringCode code=fk_StringCode::UTF16) |
ファイル一行分取得関数1 | |
bool | fgetLine (std::ifstream *ifs, fk_StringCode code=fk_StringCode::UTF16) |
ファイル一行分取得関数2 | |
bool | readFile (const std::string fileName, fk_StringCode code=fk_StringCode::UTF16) |
ファイル全体取得関数 | |
void | copyStr (fk_UniStr *str) |
文字列コピー関数 | |
void | convert (const std::string &str, fk_StringCode code) |
文字列生成関数 | |
void | printf (fk_StringCode code, const char *format,...) |
printf 形式書式付き文字列生成関数 | |
int | getCode (int num) const |
文字コード参照関数 | |
int | find (int start, int code) |
文字検索関数1 | |
int | find (int start, unsigned char c1, unsigned char c2) |
文字検索関数2 | |
void | pop_back (void) |
最後尾文字削除関数 | |
void | push_back (fk_UniChar c) |
後部文字追加関数1 | |
void | push_back (fk_UniChar *c) |
後部文字追加関数2 | |
void | push_back (int code) |
後部文字追加関数3 | |
![]() | |
fk_BaseObject (fk_Type type=fk_Type::BASEOBJECT) | |
コンストラクタ | |
fk_Type | getObjectType (void) const |
タイプ取得関数 | |
文字列板に表示する文字列を制御するクラス
このクラスは、 fk_TextImage による文字列板を作成する際に、 文字列を制御するための機能を提供します。 本クラスでは、内部の日本語コードとして Unicode (UTF-16) を採用しています。
fk_TextImage には、ファイルから文字列を直接入力する機能 (fk_TextImage::loadStrFile() 関数) がありますが、 動的に文字列を生成したい場合(例えば、ゲームの得点表示など)や、 プログラムコード中に直接表示文字列を記述したい場合などは、 このクラスによって文字列を生成します。
FK::fk_UniStr::fk_UniStr | ( | void | ) |
コンストラクタ
|
virtual |
デストラクタ
FK::fk_UniStr::fk_UniStr | ( | const fk_UniStr & | ) |
コピーコンストラクタ
void FK::fk_UniStr::clear | ( | void | ) |
初期化関数
文字列の初期化を行います。初期化後、文字列は空文字列となります。
int FK::fk_UniStr::getLength | ( | void | ) | const |
文字列長参照関数
現在格納されている文字列の長さを取得します。 全角文字、半角文字共に 1 文字として数えます。
bool FK::fk_UniStr::getLine | ( | fk_UniStr * | str | ) |
一行分取得関数
他の fk_UniStr 型インスタンスに格納されている文字列から、 一行分の文字列を取得します。 この関数で文字列を取得した際、元文字列から何文字目までを取得したのかは保存され、 次にこの関数を利用する際には前回の終了文字より後から読み込み始めます。 (C言語標準関数「fgets()」と似たような挙動ということです。) この関数を用いた際、元の文字列についてはなんらの消去を行いません。 元文字列の終端に至った場合は、そこまでの文字列を格納します。
元文字列の改行に関係なく、全体をコピーしたい場合は copyStr() を利用して下さい。
[in] | str | 元文字列 |
void FK::fk_UniStr::markClear | ( | void | ) |
bool FK::fk_UniStr::fgetLine | ( | FILE * | fp, |
fk_StringCode | code = fk_StringCode::UTF16 |
||
) |
ファイル一行分取得関数1
ファイルから一行分の文字列を格納します。 この関数で文字列を取得した際、 次にこの関数を利用する際には前回の終了文字より後から読み込み始めます。 (C言語標準関数「fgets()」と似たような挙動ということです。)
ファイル中の改行に関係なく、全体を読み込みたい場合は readFile() を利用して下さい。
[in] | fp | FILE型ファイルポインタ。 事前に fopen() 関数を用いて自前でファイルを開いておく必要があります。 |
[in] | code | 入力する文字列の想定日本語コード。 サポートしているのは JISコード、SJISコード、EUC、UTF-16 です。 具体的な指定値は fk_StringCode のリストを参照して下さい。 |
bool FK::fk_UniStr::fgetLine | ( | std::ifstream * | ifs, |
fk_StringCode | code = fk_StringCode::UTF16 |
||
) |
ファイル一行分取得関数2
ファイルから一行分の文字列を格納します。 この関数で文字列を取得した際、 次にこの関数を利用する際には前回の終了文字より後から読み込み始めます。 (C言語標準関数「fgets()」と似たような挙動ということです。)
ファイル中の改行に関係なく、全体を読み込みたい場合は readFile() を利用して下さい。
[in] | ifs | std::ifstream型ポインタ。 事前にファイルを開いておく必要があります。 |
[in] | code | 入力する文字列の想定日本語コード。 サポートしているのは JISコード、SJISコード、EUC、UTF-16 です。 具体的な指定値は fk_StringCode のリストを参照して下さい。 |
bool FK::fk_UniStr::readFile | ( | const std::string | fileName, |
fk_StringCode | code = fk_StringCode::UTF16 |
||
) |
ファイル全体取得関数
テキストファイル全体を格納します。 本関数は、行が複数ある場合も全てを格納します。 一行ずつ読み込みたい場合は fgetLine() を利用して下さい。
[in] | fileName | テキストファイルのファイル名 |
[in] | code | 入力する文字列の想定日本語コード。 サポートしているのは JISコード、SJISコード、EUC、UTF-16 です。 具体的な指定値は fk_StringCode のリストを参照して下さい。 |
void FK::fk_UniStr::copyStr | ( | fk_UniStr * | str | ) |
void FK::fk_UniStr::convert | ( | const std::string & | str, |
fk_StringCode | code | ||
) |
文字列生成関数
文字列を生成します。 文字列部分の引数型は std::string 型となっており、 もちろん std::string 型の変数を代入することができますが、 以下のように直接コードに記述することも可能です。
fk_UniStr str; str.convert("サンプル", fk_StringCode::SJIS);
printf 形式の書式付きで生成したい場合は、 printf() を利用して下さい。
[in] | str | 格納したい文字列 |
[in] | code | 入力する文字列の想定日本語コード。 サポートしているのは JISコード、SJISコード、EUC、UTF-16 です。 具体的な指定値は fk_StringCode のリストを参照して下さい。 |
void FK::fk_UniStr::printf | ( | fk_StringCode | code, |
const char * | format, | ||
... | |||
) |
printf 形式書式付き文字列生成関数
文字列を printf 形式の書式に従って生成します。 本関数は、第1引数が文字コード指定であり、 第2引数が書式フォーマットであるという点以外は、 C言語標準関数である printf() と同様の利用が可能です。 例えば、以下のサンプルコードは str[0]〜str[9]に「0です」〜「9です」という文字列を格納します。
fk_UniStr str[10]; for(int i = 0; i < 10; i++) { str[i].printf(fk_StringCode::SJIS, "%dです", i); }
[in] | code | 入力する文字列の想定日本語コード。 サポートしているのは JISコード、SJISコード、EUC、UTF-16 です。 具体的な指定値は fk_StringCode のリストを参照して下さい。 |
[in] | format | printf() 形式のフォーマット |
int FK::fk_UniStr::getCode | ( | int | num | ) | const |
文字コード参照関数
先頭から指定した番目の文字の UTF-16 に基づく文字コードを取得します。
[in] | num | 文字の番目 |
int FK::fk_UniStr::find | ( | int | start, |
int | code | ||
) |
文字検索関数1
現在格納されている文字列に対し、 指定した場所から特定の文字を検索します。
[in] | start | 検索開始場所。最初から検索する場合は 0 を指定してください。 ここで指定した文字そのものも検索対象に入ります。 |
[in] | code | 検索対象文字の UTF-16 に基づくコード |
int FK::fk_UniStr::find | ( | int | start, |
unsigned char | c1, | ||
unsigned char | c2 | ||
) |
文字検索関数2
現在格納されている文字列に対し、 指定した場所から特定の文字を検索します。
[in] | start | 検索開始場所。最初から検索する場合は 0 を指定してください。 ここで指定した文字そのものも検索対象に入ります。 |
[in] | c1 | 検索対象文字の UTF-16 前半8bit部 |
[in] | c2 | 検索対象文字の UTF-16 後半8bit部 |
void FK::fk_UniStr::pop_back | ( | void | ) |
最後尾文字削除関数
格納されている文字列の、最後尾の文字を削除します。
void FK::fk_UniStr::push_back | ( | fk_UniChar | c | ) |
void FK::fk_UniStr::push_back | ( | fk_UniChar * | c | ) |
後部文字追加関数2
格納されている文字列に対し、最後尾に文字を追加します。 引数がポインタになっていますが、 追加されるのは指定アドレスにある最初の1文字のみです。
[in] | c | 格納文字 |
void FK::fk_UniStr::push_back | ( | int | code | ) |
後部文字追加関数3
格納されている文字列に対し、最後尾に文字を追加します。
[in] | code | 文字の UTF-16 に基づくコード |