FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 全メンバ一覧
FK::fk_UniStr クラス

文字列板に表示する文字列を制御するクラス [詳解]

#include <FK/UniCode.h>

+ FK::fk_UniStr の継承関係図
+ FK::fk_UniStr 連携図

公開メンバ関数

 fk_UniStr (void)
 コンストラクタ
 
virtual ~fk_UniStr ()
 デストラクタ
 
 fk_UniStr (const fk_UniStr &)
 コピーコンストラクタ
 
fk_UniStroperator= (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::fk_BaseObject に属する継承公開メンバ関数
 fk_BaseObject (fk_Type type=fk_Type::BASEOBJECT)
 コンストラクタ
 
fk_Type getObjectType (void) const
 タイプ取得関数
 

詳解

文字列板に表示する文字列を制御するクラス

このクラスは、 fk_TextImage による文字列板を作成する際に、 文字列を制御するための機能を提供します。 本クラスでは、内部の日本語コードとして Unicode (UTF-16) を採用しています。

fk_TextImage には、ファイルから文字列を直接入力する機能 (fk_TextImage::loadStrFile() 関数) がありますが、 動的に文字列を生成したい場合(例えば、ゲームの得点表示など)や、 プログラムコード中に直接表示文字列を記述したい場合などは、 このクラスによって文字列を生成します。

参照
fk_TextImage, fk_UniChar

構築子と解体子

◆ fk_UniStr() [1/2]

FK::fk_UniStr::fk_UniStr ( void  )

コンストラクタ

◆ ~fk_UniStr()

virtual FK::fk_UniStr::~fk_UniStr ( )
virtual

デストラクタ

◆ fk_UniStr() [2/2]

FK::fk_UniStr::fk_UniStr ( const fk_UniStr )

コピーコンストラクタ

関数詳解

◆ operator=()

fk_UniStr & FK::fk_UniStr::operator= ( const fk_UniStr )

単純代入演算子

◆ clear()

void FK::fk_UniStr::clear ( void  )

初期化関数

文字列の初期化を行います。初期化後、文字列は空文字列となります。

◆ getLength()

int FK::fk_UniStr::getLength ( void  ) const

文字列長参照関数

現在格納されている文字列の長さを取得します。 全角文字、半角文字共に 1 文字として数えます。

戻り値
文字列長

◆ getLine()

bool FK::fk_UniStr::getLine ( fk_UniStr str)

一行分取得関数

他の fk_UniStr 型インスタンスに格納されている文字列から、 一行分の文字列を取得します。 この関数で文字列を取得した際、元文字列から何文字目までを取得したのかは保存され、 次にこの関数を利用する際には前回の終了文字より後から読み込み始めます。 (C言語標準関数「fgets()」と似たような挙動ということです。) この関数を用いた際、元の文字列についてはなんらの消去を行いません。 元文字列の終端に至った場合は、そこまでの文字列を格納します。

元文字列の改行に関係なく、全体をコピーしたい場合は copyStr() を利用して下さい。

引数
[in]str元文字列
戻り値
読み込みに成功した場合は true を返します。 以下の条件のいずれかの場合、false を返します。
  • 既に前回の読み込みで終端に至っており、読み込む文字がもうない場合。
  • 読み込みに失敗した場合。
参照
fgetLine(), copyStr(), markClear()

◆ markClear()

void FK::fk_UniStr::markClear ( void  )

マーク初期化関数

getLine() 関数では、元文字列から何文字目までを取得したのかは保存されます。 本関数は、この情報を初期化するものです。 この関数を呼ぶと、 次に getLine() を用いた場合は改めて文字列の先頭から格納を始めます。

参照
getLine()

◆ fgetLine() [1/2]

bool FK::fk_UniStr::fgetLine ( FILE fp,
fk_StringCode  code = fk_StringCode::UTF16 
)

ファイル一行分取得関数1

ファイルから一行分の文字列を格納します。 この関数で文字列を取得した際、 次にこの関数を利用する際には前回の終了文字より後から読み込み始めます。 (C言語標準関数「fgets()」と似たような挙動ということです。)

ファイル中の改行に関係なく、全体を読み込みたい場合は readFile() を利用して下さい。

引数
[in]fpFILE型ファイルポインタ。 事前に fopen() 関数を用いて自前でファイルを開いておく必要があります。
[in]code入力する文字列の想定日本語コード。 サポートしているのは JISコード、SJISコード、EUC、UTF-16 です。 具体的な指定値は fk_StringCode のリストを参照して下さい。
戻り値
読み込みに成功した場合は true を返します。 以下の条件のいずれかの場合、false を返します。
  • 既に前回の読み込みで終端に至っており、読み込む文字がもうない場合。
  • 読み込みに失敗した場合。
参照
getLine(), readFile()

◆ fgetLine() [2/2]

bool FK::fk_UniStr::fgetLine ( std::ifstream *  ifs,
fk_StringCode  code = fk_StringCode::UTF16 
)

ファイル一行分取得関数2

ファイルから一行分の文字列を格納します。 この関数で文字列を取得した際、 次にこの関数を利用する際には前回の終了文字より後から読み込み始めます。 (C言語標準関数「fgets()」と似たような挙動ということです。)

ファイル中の改行に関係なく、全体を読み込みたい場合は readFile() を利用して下さい。

引数
[in]ifsstd::ifstream型ポインタ。 事前にファイルを開いておく必要があります。
[in]code入力する文字列の想定日本語コード。 サポートしているのは JISコード、SJISコード、EUC、UTF-16 です。 具体的な指定値は fk_StringCode のリストを参照して下さい。
戻り値
読み込みに成功した場合は true を返します。 以下の条件のいずれかの場合、false を返します。
  • 既に前回の読み込みで終端に至っており、読み込む文字がもうない場合。
  • 読み込みに失敗した場合。
参照
getLine(), readFile()

◆ readFile()

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 のリストを参照して下さい。
戻り値
読み込みに成功した場合 true を、失敗した場合 false を返します。
参照
fgetLine(), copyStr()

◆ copyStr()

void FK::fk_UniStr::copyStr ( fk_UniStr str)

文字列コピー関数

他の fk_UniStr 型インスタンスに格納されている文字列をコピーします。 一行分のみをコピーしたい場合は、 getLine() を利用して下さい。

引数
[in]strコピー元のインスタンス
参照
getLine(), readFile()

◆ convert()

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 のリストを参照して下さい。
参照
printf()

◆ printf()

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]formatprintf() 形式のフォーマット
参照
convert()

◆ getCode()

int FK::fk_UniStr::getCode ( int  num) const

文字コード参照関数

先頭から指定した番目の文字の UTF-16 に基づく文字コードを取得します。

引数
[in]num文字の番目
戻り値
文字列の長さよりも num が小さかった場合は、指定した文字のコードを返します。 num 文字列の長さよりも大きかった場合、-1 を返します。

◆ find() [1/2]

int FK::fk_UniStr::find ( int  start,
int  code 
)

文字検索関数1

現在格納されている文字列に対し、 指定した場所から特定の文字を検索します。

引数
[in]start検索開始場所。最初から検索する場合は 0 を指定してください。 ここで指定した文字そのものも検索対象に入ります。
[in]code検索対象文字の UTF-16 に基づくコード
戻り値
発見された場合はその文字の番目を返します。 発見されなかった場合は -1 を返します。
参照
find(int, unsigned char, unsigned char)

◆ find() [2/2]

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部
戻り値
発見された場合はその文字の番目を返します。 発見されなかった場合は -1 を返します。
参照
find(int, int)

◆ pop_back()

void FK::fk_UniStr::pop_back ( void  )

最後尾文字削除関数

格納されている文字列の、最後尾の文字を削除します。

◆ push_back() [1/3]

void FK::fk_UniStr::push_back ( fk_UniChar  c)

後部文字追加関数1

格納されている文字列に対し、最後尾に文字を追加します。

引数
[in]c格納文字
参照
fk_UniChar

◆ push_back() [2/3]

void FK::fk_UniStr::push_back ( fk_UniChar c)

後部文字追加関数2

格納されている文字列に対し、最後尾に文字を追加します。 引数がポインタになっていますが、 追加されるのは指定アドレスにある最初の1文字のみです。

引数
[in]c格納文字
参照
fk_UniChar

◆ push_back() [3/3]

void FK::fk_UniStr::push_back ( int  code)

後部文字追加関数3

格納されている文字列に対し、最後尾に文字を追加します。

引数
[in]code文字の UTF-16 に基づくコード