ALMakeRecord


目次

1. 概要
2. 基本的な使い方
3. srdのフォーマットについて
4. コマンドラインオプション

第1章 概要

ALMakeRecordとはテーブル定義とcsvファイルを組み合わせてALTableで使用するテーブルファイルを生成するツールです。 テーブル定義はxmlで記述したsrdファイルと、バイナリ形式のardファイル両方が使用可能です。

第2章 基本的な使い方

コマンドラインは以下のようになります

ALMakeRecord csvファイル [オプション] 

このとき、csvファイルだけでなくsrdかardのフィールド定義ファイルが必須になります。 -DefineFileの指定がなければ、csvファイルの拡張子をsrdかardに変更した物が使用されます。 出力テーブルファイルは、-OutFileの指定がなければ入力ファイルの拡張子をatbにしたものが使用されます。

第3章 srdのフォーマットについて

srdはxmlでフィールド定義を記述します。 現在は手動で作るしかありませんが、GUIでの編集ツールを作成予定です。

以下のような形になります。

<?xml version="1.0"?>
<TableDefine xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Fields>
    <Field>
      <Name>ID</Name>
      <Caption>ID</Caption>
      <FieldType>Int</FieldType>
    </Field>
    <Field>
      <Name>Name</Name>
      <Caption>識別名</Caption>
      <FieldType>String</FieldType>
    </Field>
    <Field>
      <Name>UseFlag</Name>
      <Caption>このレコードを使用する</Caption>
      <FieldType>Bool</FieldType>
    </Field>
  </Fields>
</TableDefine>

このように、フィールド毎に、識別名、表示名称、型を指定します。

第4章 コマンドラインオプション

コマンドラインオプションは、入力ファイル名の前、後どちらにでも記述できます。 また、大文字小文字は区別しません。

  • -BasePath 基準パス

    各種パスの基準パスを指定します。

    各種ファイル名指定やパス指定は、このパスが基準となります。

    指定がなければ入力ファイルのある場所が基準パスとなります。

    この基準パスの指定は、カレントパスが基準となりますのので、例えば . を指定すると各種パスの基準がカレントパスになります。

  • -OutPath 最終データ出力パス

    最終データ出力パスを指定します。

    このツールが出力するデータのうち、最終出力に相当するファイルを出力するパスを指定します。

    指定がなければ基準パスを使用します。

  • -DefineFile レコード定義ファイル

    レコード定義ファイルを指定します。

    レコード定義はxml形式のsrdとバイナリ形式のard両方が使用できます。

    省略した場合、csvファイルの拡張子を変更した物が使用され、srd->ardの順で検索されます。

  • -OutFile 最終データファイル名

    最終データのファイル名を指定します。

    拡張子を指定しても無視され、フォーマットに合わせた拡張子が設定されます。

    省略時は入力ファイルと同じ名前が使用されます。

    基準パスは最終データ出力パスです。

  • -WorkPath 中間ファイル出力パス

    中間ファイル出力パスを指定します。デフォルトでは_workです。このフォルダは削除しても問題ありません。

  • -BigEndian 

    データをビッグエンディアンで出力します。

    なお、PCではリトルエンディアン、ビッグエンディアン両方のデータを読む事が可能です。

  • -UseCsvHeader 

    Csvの1行目を常にフィールド識別ヘッダとして使用します。

    フィールド識別ヘッダとは、テーブルのフィールド名を,区切りで指定した物です。

    これがある場合、フィールドの順番が変わった場合でも、データがずれる事が無くなります。

    このオプションが無くても、自動的に1行目がフィールド定義か判定しますが、

    このオプションがある場合は無効なフィールド名が含まれているとエラーで停止します。

  • -IDHeaderFileName 

  • -HeaderIDFieldName 

  • -HeaderValueFieldName 

  • -HeaderCommentFieldName 

  • -SuperClassName 

  • -PythonSuperClassName 

  • -CusomTableHeaderFileName 

    定義したテーブルの各フィールドへのアクセス関数を持つ、

    ALFixTableを継承したクラスを定義するヘッダーファイルを指定した名前で出力します。

    プログラムからアクセスする事が多い場合、このクラスを使用する事でアクセスが容易になります。

    また、Fieldを使用せず、メモリ直アクセスで値を取得するようにする事も可能です。

    これはシンボルALTABLE_CUSTOM_DIRECTに1を設定する事で行われます。

    このときはフィールド情報は一切存在しなくても使用できるため、Release時に速度とメモリを確保できます。

    このシンボルは特に指定しない場合は0に設定されています。

    なお、このダイレクトアクセス時はALTableのフィールド構成に変化があるとアクセス不能になります。

    その時は必ずこのヘッダファイルを再生成してください。

  • -SarList Sarファイル名

    .sarファイルと、SarListファイルを生成するオプションです。

    .sarとは.aar(Aqualeadで使用するアーカイブ)を生成するための設定ファイルです。

    .sarは、以下のように記述します。IDはデータの種別が違えば同じものを使用できます。

    Tex.bmp=0x1000

    sample1.amt=0x1000

    sample2.amt=0x1001

    .aarを作成する時にはデータごとにIDを設定する必要があるため、.sarが必要になります。

    SarListは、.csvなどのデータが存在する時、そのデータ用の

    .sarをincludeするためのファイルです。以下のように記述します。

    [CheckInclude]

    Test1.sar,../Test1.xls

    Test2.sar,../Test2.xls

    Test3.sar,../Test3.xls

    [CheckInclude]は、ALMakeArc関数を実行する時にカンマで区切った二番目のデータが存在すれば、

    一番目の.sarをincludeする構文です。

    例えばTest1.xlsが二番目の項目で指定されたパスに存在すれば、Test1.sarをincludeします。

    ALMakeArc( "_work/SarList.sar ../../Data/Tests.aar" );

    ALMakeArc関数の実行時、リストの最後の項目(Test3.csv)までCheckIncludeを行い、

    存在するすべての.csvを一つのTests.aarファイルにまとめて生成します。

  • -IDList ID定義リストファイル

    .idtファイルの生成を行うためのオプションです。

     .idtは-BaseIDオプションで指定したIDを基準に、各ファイルに対してIDを定義するためのファイルです。

     出力先のパスに.idtファイルが存在しなければ新規作成し、.idtファイルが存在していても、ファイルのID定義がなければ追記します。

     IDはBaseIDに基づいて割り振られます。

    例えばBaseIDを0x200000と設定してbuild.pyを実行すると、以下のようになります。

    TestData=0x200000

    SampleText=0x200001

     また、拡張子はなく、ファイル名に対してIDが設定されます。

  • -BaseID 基準ID

    コンバートの基準となるIDを指定します。コンバートしたファイルはこのIDから順に使用します。

    数値は0xをつける事により16進数が使用可能です。

  • -IDStep 

  • -OnlyArd 

  • -WriteArd 

  • -UseVirtual 

  • -Obfuscated 

    テーブルをメモリダンプしても外から見えないように難読化するためのオプションです。

    このオプションを付けると、テーブルを作成するクラスの継承元がALObfuscatedTableクラスになるように.incファイルが修正されます。

     このオプションを付けない場合、ALMutableTableが継承元のクラスになります。

  • -EmbeddedArd 

    テーブルを作成するクラスの.incファイルに、Ard(バイナリ形式のテーブル定義)を配列として直接埋め込むオプションです。以下のように埋め込みます。

    static SampleTable * Create(){

    static Uint8 ard[] = {

    0x11,0x2c,0x12,0x34,0x21,0x30,0x46,0x50,0xb6,0x70,0x80,0x90,0x9a,0x8b,0x8c,0x2f,

    }

  • -Compress 

  • -UseAar 

  • -Prepare 

  • -ScriptFile