FineKernelToolKit: FK_CLI::fk_UniStr クラス

FineKernelToolKit 4.3.0

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

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

`#include <CLI/FK_CLI/include/UniCode_CLI.h>`

FK_CLI::fk_UniStr の継承関係図
[凡例]
FK_CLI::fk_UniStr 連携図
[凡例]

## 公開メンバ関数

| fk_UniStr ()
| コンストラクタ
| ~fk_UniStr ()
| デストラクタ
| !fk_UniStr ()
| ファイナライザ
void | Clear (void)
| 初期化メソッド
int | GetLength (void)
| 文字列長参照メソッド
bool | GetLine (fk_UniStr^ str)
| 一行分取得メソッド
void | MarkClear (void)
| マーク初期化メソッド
bool | ReadFile (String^ fileName, fk_StringCode code)
| ファイル全体取得メソッド1
bool | ReadFile (String^ fileName)
| ファイル全体取得メソッド2
void | CopyStr (fk_UniStr^ str)
| 文字列コピーメソッド
void | Convert (String^ str, fk_StringCode code)
| 文字列生成メソッド1
void | Convert (String^ str)
| 文字列生成メソッド2
int | GetCode (int num)
| 文字コード参照メソッド
int | Find (int start, int code)
| 文字検索メソッド1
int | Find (int start, unsigned char c1, unsigned char c2)
| 文字検索メソッド2
void | PopBack (void)
| 最後尾文字削除メソッド
void | PushBack (fk_UniChar^ c)
| 後部文字追加メソッド1
void | PushBack (int code)
| 後部文字追加メソッド3

## 詳解

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

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

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

参照
  fk_TextImage, fk_UniChar

## 構築子と解体子

## ◆ fk_UniStr()

FK_CLI::fk_UniStr::fk_UniStr | ( |  | ) |

コンストラクタ

## ◆ ~fk_UniStr()

FK_CLI::fk_UniStr::~fk_UniStr | ( |  | ) |

デストラクタ

## ◆ !fk_UniStr()

FK_CLI::fk_UniStr::!fk_UniStr | ( |  | ) |

ファイナライザ

## 関数詳解

## ◆ Clear()

void FK_CLI::fk_UniStr::Clear | ( | void |  | ) |

初期化メソッド

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

## ◆ GetLength()

int FK_CLI::fk_UniStr::GetLength | ( | void |  | ) |

文字列長参照メソッド

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

戻り値
  文字列長

## ◆ GetLine()

bool FK_CLI::fk_UniStr::GetLine | ( | fk_UniStr^ | str | ) |

一行分取得メソッド

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

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

引数

  [in] | str | 元文字列

戻り値
  読み込みに成功した場合は true を返します。 以下の条件のいずれかの場合、false を返します。
  - 既に前回の読み込みで終端に至っており、読み込む文字がもうない場合。
  - 読み込みに失敗した場合。

参照
  CopyStr(), MarkClear()

## ◆ MarkClear()

void FK_CLI::fk_UniStr::MarkClear | ( | void |  | ) |

マーク初期化メソッド

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

参照
  GetLine()

## ◆ ReadFile() [1/2]

bool FK_CLI::fk_UniStr::ReadFile | ( | String^ | fileName,
|  | fk_StringCode | code )

ファイル全体取得メソッド1

テキストファイル全体を格納します。 本メソッドは、行が複数ある場合も全てを格納します。

引数

  [in] | fileName | テキストファイルのファイル名
  [in] | code | 入力する文字列の想定日本語コード。 サポートしているのは JISコード、SJISコード、EUC、UTF-16 です。 具体的な指定値は fk_StringCode のリストを参照して下さい。

戻り値
  読み込みに成功した場合 true を、失敗した場合 false を返します。

参照
  CopyStr()

## ◆ ReadFile() [2/2]

bool FK_CLI::fk_UniStr::ReadFile | ( | String^ | fileName | ) |

ファイル全体取得メソッド2

テキストファイル全体を格納します。 本メソッドは、行が複数ある場合も全てを格納します。 文字コードは UTF-16 であることを前提としています。 他の文字コードを扱いたい場合は、 ReadFile(String^, fk_StringCode) を利用して下さい。

引数

  [in] | fileName | テキストファイルのファイル名

戻り値
  読み込みに成功した場合 true を、失敗した場合 false を返します。

参照
  CopyStr()

## ◆ CopyStr()

void FK_CLI::fk_UniStr::CopyStr | ( | fk_UniStr^ | str | ) |

文字列コピーメソッド

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

引数

  [in] | str | コピー元のインスタンス

参照
  GetLine(), ReadFile()

## ◆ Convert() [1/2]

void FK_CLI::fk_UniStr::Convert | ( | String^ | str,
|  | fk_StringCode | code )

文字列生成メソッド1

文字列を生成します。 文字列部分の引数型は String 型となっており、 もちろん String 型の変数を代入することができますが、 以下のように直接コードに記述することも可能です。

    fk_UniStr   str;
    str.Convert("サンプル", FK_STR_SJIS);

引数

  [in] | str | 格納したい文字列
  [in] | code | 入力する文字列の想定日本語コード。 サポートしているのは JISコード、SJISコード、EUC、UTF-16 です。 具体的な指定値は fk_StringCode のリストを参照して下さい。

参照
  printf()

## ◆ Convert() [2/2]

void FK_CLI::fk_UniStr::Convert | ( | String^ | str | ) |

文字列生成メソッド2

文字列を生成します。 文字列部分の引数型は String 型となっており、 もちろん String 型の変数を代入することができますが、 以下のように直接コードに記述することも可能です。

    fk_UniStr   str;
    str.Convert("サンプル");

なお、入力文字列は SJIS を前提としています。 他の文字コードを利用したい場合は、 Convert(String^, fk_StringCode) を利用して下さい。

引数

  [in] | str | 格納したい文字列

## ◆ GetCode()

int FK_CLI::fk_UniStr::GetCode | ( | int | num | ) |

文字コード参照メソッド

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

引数

  [in] | num | 文字の番目

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

## ◆ Find() [1/2]

int FK_CLI::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_CLI::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)

## ◆ PopBack()

void FK_CLI::fk_UniStr::PopBack | ( | void |  | ) |

最後尾文字削除メソッド

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

## ◆ PushBack() [1/2]

void FK_CLI::fk_UniStr::PushBack | ( | fk_UniChar^ | c | ) |

後部文字追加メソッド1

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

引数

  [in] | c | 格納文字

参照
  fk_UniChar

## ◆ PushBack() [2/2]

void FK_CLI::fk_UniStr::PushBack | ( | int | code | ) |

後部文字追加メソッド3

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

引数

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