トップページ > 問題ファイルの仕様 > Version 3

問題ファイルの仕様 Version 3

 このソフトでは、ユーザーが独自に問題を作成することができ、
問題は一定の書式に沿った問題ファイルを元に作成することになります。
ここでは、問題ファイルの書式の仕様について説明します。

・ファイル構成

実行ファイルがあるディレクトリ
      |---実行ファイル
      |---data ← このフォルダに問題ファイルを格納します。
            |---問題ファイル.ini ← 以降の説明では、問題設定ファイル
            |---問題ファイル.dat ← 以降の説明では、問題ファイル
            |---背景ファイル(必要な場合)
            |---音声ファイル(必要な場合)
            |--- ・・・

最低限動作をさせるには、問題設定ファイルと、問題ファイルが必要となります。

各フォルダ・ファイルについての詳細は、以下のとおりです。
dataフォルダ ユーザーが作成した問題ファイルをこのフォルダに格納します。
現在のバージョン(Version 0.2.2.1)では、問題ファイルを格納するフォルダを指定することはできません。
問題ファイル.ini ファイル名は問題のタイトルと一致するわけではありませんが、「問題のタイトル.ini」の方が、わかりやすいと思います。
プログラム内では、拡張子を見て判断しているので、拡張子は「ini」にしてください。(Version 0.2.2.1)
また、このファイルは、dataフォルダ直下に格納しないと、読み込まれません。
問題ファイル.dat このファイルのファイル名と格納する場所は、問題設定ファイルの設定によって変わってきます。
ですので、dataフォルダ直下ではなく、dataフォルダにフォルダを作成して、そこに格納することも可能です。
背景ファイル
音声ファイル
このファイルは、必要がない場合もあります。
ひとつの問題に対して、複数の構成ファイルがある場合は、フォルダを作成して、そこの中に格納する方が、
他の問題とファイルが重なることもなく、いいかと思います。
(ただし、上記のとおり、「問題ファイル.ini」は、dataフォルダ直下に置くようにしてください)

・問題設定ファイルについて
 問題設定ファイルについては、通常の設定ファイルの記述方法と同じです。
具体的には、設定ファイルは以下のようになっており、
[TypingQuesitonSetup]
Version=2
QuestionNumber=5
QuestionFileName=./data/サンプル用データ.dat
この設定ファイルだと、[TypingQuesitonSetup]というのが、セクション名です。
このソフトの場合、セクション名はこの名前で固定です。
(Version 0.2.2.1 現在)

Version、QuestionNumber、QuestionFileNameの、「=」の左側にある文字列がキー名です。
このキー名は、設定の名前だと思ってもらえればいいと思います。
キー名については、下の方で詳しく説明します。

最後に、「=」の右側にある文字列が、設定のデータです。
この部分にキー名に対しての、設定のデータを記述します。
記述できる文字列はキーによって異なるので、以下のキーについての説明と一緒に、
設定データについても書いてあるので、そちらを参照してください。

キー名と、設定データは一行で一項目となっているので、行数が長くなっても、
ひとつの設定データの場合は、改行しないようにしてください。
また、キー名は、下にあるものを参照してもらって、スペースなどを付け加えないようにしてください。

・セクション名
上でも多少触れられていますが、このソフトではセクション名は、

[TypingQuesitonSetup]

というので、固定となります。
ファイルの先頭の部分に、これを記述するようにしておいてください。

・キー名
必須なキー名と、その説明です。
キー名 説明
QuestionNumber 問題数に関する設定。
問題ファイルの中に存在する問題数を指定してください。
このデータを元に問題を取得するので、問題数が正常に設定されていないと、
すべてのデータを読み込むことができない可能性があります。
QuestionFileName 問題ファイルに関する設定。
問題ファイルが格納されているパスを設定します。
Version 問題ファイルのバージョンを設定します。
よくわからない場合は、最新のバージョンを設定するようにしてください。


以下は、オプションで指定できるキーです。
Title 問題のタイトルです。
一覧表示を行っときに表示されます。
Message 問題の説明です。
一覧表示を行っときに表示されます。
TypeSoundFileName タイプ音に関する設定です。
タイプ時に再生する音楽のパスを指定してください。
再生できるファイルについては、下の方を参照してください。
ミスタイプ時にはならないようになっています。
MissTypeSoundFileName ミスタイプ時のタイプ音に関する設定です。 ミスタイプ時に再生する音楽のパスを指定してください。
再生できるファイルについては、下の方を参照してください。
BGMFileName タイピング中のBGMに関する設定です。
BGMとして再生する音楽のパスを指定してください。
再生できるファイルについては、下の方を参照してください。
BGMFileType タイピング中のBGMに関する設定です。
ここには、BGMとして再生する音楽の種類を指定します。
EndSoundFileName 終了時に一度だけ再生するファイルに関する設定です。
再生する音楽ファイルのパスを指定してください。
BackGroundPictureFileName 背景に使用する画像ファイルのパスです。
背景色が定義されている場合、こちらが優先されます。
WindowBackColor 背景色に関する設定です。
背景画像が定義されている場合、背景画像が優先されます。
BackColor_Koyubi 仮想キーボード上に表示される、小指の位置の色です。
BackColor_Kusuriyubi 仮想キーボード上に表示される、薬指の位置の色です。
BackColor_Nakayubi 仮想キーボード上に表示される、中指の位置の色です。
BackColor_Hitosashiyubi 仮想キーボード上に表示される、人差し指の位置の色です。
BackColor_Other 仮想キーボード上に表示される、上記以外のキーの色です。
KeyboardLineColor 仮想キーボードの枠線の色です。
KeyboardStringColor 仮想キーボードのキーの文字色です。
NextTypeKeyColor 仮想キーボードの次に打つキーにを表示するときに使用する色です。
WindowStringColor 文字色に関する設定です。
RandomQuestionSet ランダムで問題を出題するかの設定です。

・設定項目の中の、ファイルパスの扱い
ファイルパスは、相対パスでも、絶対パスでもかまいません。
相対パスの場合、ほとんどの場合が、実行ファイルのディレクトリを基準とされます。

・色の設定について
色の指定は、16進数で指定します。
「0xFF00FF」というような風に記述をし、BGRの順番で記述します。
(先頭の「0x」は16進数だということをしめす。この表記で問題ファイルに直接記述することが可能
また、0xをつけずに、記述することも可能。)

・背景ファイルについて
背景ファイルとして、読み込むことができるのは、Bitmapファイルのみです。
(Version 0.2.2.1 現在)

・各設定の最大文字数
各設定の最大文字数は、255文字です。

・音声ファイルについて
音声ファイルについては、FileTypeが指定できるものは、指定をしてやればほとんどのファイルが再生可能です。
ファイルタイプは、Windowsディレクトリのwin.iniに記述されています。
一応、開発環境のデータを載せておきますが、これで動くとは限りません。
asf=MPEGVideo2
asx=MPEGVideo2
m3u=MPEGVideo2
mp2=MPEGVideo
mp3=MPEGVideo2
mpeg=MPEGVideo
mpg=MPEGVideo
wma=MPEGVideo2
wmv=MPEGVideo2

・問題ファイルについて
問題ファイルの一例
つれづれなるままに、
つれづれなるままに、
日暮し、硯に向かいて、
ひぐらし、すずりにむかいて、
心にうつりゆくよしなし事を、
こころにうつりゆくよしなしごとを、
そこはかとなく書きつくれば、
そこはかとなくかきつくれば、
あやしうこそ物狂ほしけれ。
あやしうこそものぐるほしけれ。
見ていただければわかるように、2行で一問としています。
上のほうが表示するための漢字かな混じりの文章です。
下のほうは半角英数字に変換するためのデータです。
プログラム内部では、この下の文章を元に半角英数字の文字列を生成します。
変換できる文字は以下のとおりです。

1Byte文字:キーボードから入力できるものすべて。
2Byte文字:ひらがな、カタカナ、記号(一部未実装あり)、英数字

以上が使用できます。
実際に使用してみて確認してみるのが一番かと思います。
2Byte文字の場合、処理ができない場合は自動的にその文字は飛ばして文字列を生成します。

また、以上の文字でも仮想キーボードの次に打つ文字として表示されない場合があります。


問題ファイルの仕様へ戻る

トップページへ戻る
説明に不備がありましたら、連絡していただければ幸いです。

作成者:yasuharu
http://yasuharu.net