------------------------------------------------------------------------------
◆RecordDefine(RP)ファイル説明
------------------------------------------------------------------------------
バイナリファイル中の対象1レコードの構成を定義・記述します。

Binary→Text変換、Text→Binary変換で使います。
バイナリ→テキスト→バイナリなどと使う時は、基本的に、同じ定義を使って下さい。

------------------------------------------------------------------------------
◆指定の仕方
------------------------------------------------------------------------------
1.ツールの画面で読み込んで指定します。
2.個別の ini ファイルの [FileInfo] の RecordDefinitionFileRP= 
 に続けて相対パスで指定します。
  先頭、末尾のスペースは無効です。
  「, A.txt 」でも「,A.txt」とみなされます。

------------------------------------------------------------------------------
◆記述ルール
------------------------------------------------------------------------------
・先頭が(//)で始まる行はコメントと見なされます。

・項目は半角カンマ(,)区切り。
 ただし、以下は別です。
  「(6) Text Data 項目列見出し」の各見出し項目は、半角スペース区切り。
  「(7) Code Table File」の各ファイル名は、「*」区切り。

・1行の構成は、以下のようになっています。

(1)   (2)                 (3)                       (4)            (続く)
目印, Binary Data 項目長, Binary Data 読み書き方向, Conversion Type, 

(続き)
(5)               (6)                     (7)
Text Data 項目数, Text Data 項目列見出し, Code Table File

[sample]
01A,2,R,n,1,項目名A,Ref\codeABC.txt
01C,2,R,1,11,B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B11

・ファイルの1行読み取りサイズの Max は、514Byte 。(改行コード込み)

------------------------------------------------------------------------------
◆各項説明
------------------------------------------------------------------------------
------------------------------------------------------------------------------
(1) 目印

 文字。ツールには無視されます。このファイルを編集する時の目印です。
 アドレスなどをどうぞ。

------------------------------------------------------------------------------
(2) Binary Data 項目長    (以下、「B項目長」と略)

 バイナリファイルの対象レコードの構成要素1項目の Byte 長です。
 後述する、Data Convert Type(項目変換タイプ)が、
 n, u, ビット数 の場合は、1, 2, 4 のいずれかで指定します。
 s の場合は、1以上、2050 以下の10進数で指定します。

※1レコードの最大長は2050Byteです。

※また、Text→Binary変換時は、取り込み元のテキスト1レコード全体で、
 2050 Byte 以下、の制限があります。(改行コード込み)◆

------------------------------------------------------------------------------
(3) Binary Data 読み書き方向 (以下、「B読み書き方向」と略)

 N or R
 バイト or ビットの読み書き方向。バイトオーダ(Byte-order) のようなもの。

 例. B項目長=2Byte の項目の 16進値が「02 01」の場合、
   上位下位(見た目では左右)どちらから読み書きするか。
  N:順・上位から(左から)(例では、02 から)
  R:逆・下位から(右から)(例では、01 から)

 後述の「(4) Data Type(変換タイプ)」により以下の意味となります。

 --------------------
 n, u: 数の場合、
    R はリトルエンディアン (Little endian)、
    N はビッグエンディアン (Big endian)

 --------------------
 s:文字列の場合、
    R は _swabする。(2Byte ずつ反転して読み書き。)
             ※B項目長が奇数の場合は最後1桁は保証されません。
    N は _swab無し。

 --------------------
 bit 数 の場合、

  ・B項目長=2Byte 以上の場合、
    R は 下位 Byte からとして順に分解/足し上げする。
    N は 上位 Byte からとして順に分解/足し上げする。
    (その中の 1Byte については、R/N どちらも下位 Bit から)

  ・B項目長=1Byte の場合、
    R は 下位 Bit からとして順に分解/足し上げする。
    N は 上位 Bit からとして順に分解/足し上げする。

 --------------------
 bit 数 の場合の例. 
 --------------------
 例1.B項目長=2Byte の項目の 16進のビット値が「11111101 10101010」で
   出力項目が 16項目の場合、
  R -> 第1項=0, 第2項=1, ・・・, 第8項=1, 第9項=1, 第10項=0, ・・・, 第16項=1
  N -> 第1項=1, 第2項=0, ・・・, 第8項=1, 第9項=0, 第10項=1, ・・・, 第16項=1

  イメージは、
   11111101 10101010
  R <----(2) <----(1)
  N <----(1) <----(2)
 
 --------------------
 例2.B項目長=1Byte の項目の 16進のビット値が「10101010」で
   出力項目が 8項目の場合、
  R -> 第1項=0, 第2項=1, ・・・, 第8項=1
  N -> 第1項=1, 第2項=0, ・・・, 第8項=0

  イメージは、
   10101010
  R <-------
  N ------->

------------------------------------------------------------------------------
(4) Conversion Type      (項目変換タイプ)

  n, u, s, bit区切り数(1〜31)

 n:符号(正負)有り10進数(B項目長= 1 or 2 or 4 Byte のいずれかのときのみ)
 u:符号無し10進数    (B項目長= 1 or 2 Byte のいずれかのときのみ)
 s:文字列(SJIS)    (B読み書き方向= R の場合、B項目長の偶奇に注意.)
 1〜31:bit区切り数
    実行時、1〜31 の値を指定する場合、結果は非負(0 or 正の数)です。

    例. 4:4bit区切り(変換後の値:0〜15)
       1:1bit区切り(変換後の値:0/1)

   注意. 以下の範囲の制限があります。
      B項目長  変換タイプ
         1 -> 1〜7  ( 8以上は指定できません。「u」を使用して下さい。)
         2 -> 1〜15 (16以上は指定できません。「u」を使用して下さい。)
         4 -> 1〜31 (32以上は指定できません。「u」を使用して下さい。)

------------------------------------------------------------------------------
(5) Text Data 項目数     (以下、「T項目数」と略)

 Binary→Text変換時は、出力項目数。
 Text→Binary変換時は、入力項目数。実際の項目数と一致している必要があります。

 非負です。◆ 0を指定した場合は skip します。◆

 最大値は「(2) Binary Data 項目長」と
     「(4) Data Convert Type(項目変換タイプ)」で求まる数です。
 0 以外の場合、以下の範囲で指定します。

  ・変換タイプが bit 区切り数でない(n,u,s)場合、1.

  ・変換タイプが bit 区切り数の場合、
     B項目長 * 8(bit) / bit 区切り数
   例. 1 Byte * 8(bit) / 4      =>  2 まで
      4 Byte * 8(bit) / 1      => 32 まで

 Binary→Text変換時に、これらの範囲内で最大値より少ない項目数を指定した場合、
 残り は出力されません。

 Text→Binary変換時に、これらの範囲内で最大値より少ない項目数を指定した場合、
 残り = その後ろの項の値は 0 と見なします。

------------------------------------------------------------------------------
(6) Text Data 項目列見出し  (以下、「T列見出し」と略)

 Binary→Text変換時の出力項目の列見出し。
 出力項目数(「(5) Text Data 項目数」)分、半角スペース区切りで列挙します。

 なお、Text→Binary変換時、編集ファイルの列見出し行は、
 先頭「//」でコメントされていること。

 また、出力結果の項目の先頭に「=」や「=」が付いていると、
 EXCEL等で読み込んだとき、関数と見なされ、表示がおかしくなります。
 そのまま使用しないで下さい。

------------------------------------------------------------------------------
(7) Code Table File      (以下、「CodeTable」と略)

 任意指定です。
 数のコードの置換を定義しているファイルを記載します。

 複数指定する場合、半角「*」区切りでファイルを追記します。
  見づらければ、「 * 」のようにスペースを入れてもOKです。
   [sample1] ・・・,codeAAA.txt
   [sample2] ・・・,codeAAA.txt * codeBBB.txt

 コード置換定義ファイルは、必ずツールと同じフォルダにの下に配置します。
 ただし、ツールがあるフォルダの下にフォルダを作って、
 そこに配置できます。 その場合は、そのパスから指定します。

  例.・・・,Ref\code\charReplace.txt

 →ReadMe_コード置換定義ファイル.txt の説明を参照して下さい。

------------------------------------------------------------------------------
◆補足・注意◆
------------------------------------------------------------------------------
・表示化けについて
 出力結果の項目の先頭に「=」や「=」が付いていると、
 EXCEL等で読み込んだとき、関数と見なされ、表示がおかしくなります。
 そのまま使用しないで下さい。

・定義ファイルの同期について
 レコード、コードの定義ファイルは、同じ対象のファイルの場合、
 Binary→Text変換時とText→Binary変換時に、同期していないといけません。

・バイナリデータ中の特殊文字について
 レコード定義ファイルで、変換タイプ=s と指定する項目(文字列項目)の
 バイナリデータ中に、0x00 や 0x0A を含むものがあります。
  文字列項目に関しては、0x00 は文字列の終了、0x0A は改行と見なされます。
 そのため、文字列項目で 0x00 が現れたら、その後ろはゴミとして無視しています。
  文字列項目で 0x0A が現れる可能性がある場合は、
 コード置換定義ファイルを指定しましょう。

・弟1カラムのインデックスとしての利用について
 弟1カラムの項目変換タイプが数でない場合、
 Text→Binaryに変換する際に、
 弟1カラムをインデックスとして利用できません。

以上です。