2007年7月25日水曜日

(X)HTMLコンバータ (6) hsファイルから命令や関数等の一覧を作成

hsファイルから関数一覧を作成」と同じ考え方ですが、HHX付属のモジュールを利用することで格段に効率UPしました。

#include "../hsphelp/src/hhx_db.hsp"
#define HELP_DIR "hsphelp"

// ヘルプディレクトリの存在を確認
    chdir dir_exe
    dirlist s, HELP_DIR, 5
    if stat == 0 : dialog "ヘルプディレクトリが見つかりません", 1 : end
    chdir HELP_DIR

// データベースのロード
    mes "loading..."
    HHX_init_load_db
    if HHX_currentset_sum() ! HHX_diskset_sum() {
        mes "rebuilding db..."
        HHX_init_rebuild_db DBR_WRITEDB
    } else {
        HHX_init_extract_db
    }

// コンバータ用デーベースの作成
    mes "making DB for (X)HTML-converter..."
    db_num = HHX_select_all()
    repeat db_num
        c = HHX_get_next()
        db_name  = hhxdata( c, C_NAME )
        db_group = hhxdata( c, C_GROUP )
        db_prm   = hhxdata( c, C_PRM )
        if instr( db_group, 0, "プリプロセッサ命令" ) >= 0 {
            ; プリプロセッサ
            notesel list_prepro
        } else : if instr( db_group, 0, "システム変数" ) >= 0 {
            ; システム変数
            notesel list_sysval
        } else : if instr( db_group, 0, "マクロ" ) >= 0 {
            ; マクロ
            notesel list_macro
        } else : if db_prm = "" {
            ; 引数なし(命令)
            notesel list_command
        } else : if peek( db_prm ) = '(' {
            ; 関数型
            notesel list_func
        } else {
            ; 命令型
            notesel list_command
        }
        noteadd db_name
    loop
    mes "finish."

2 件のコメント:

匿名 さんのコメント...

重箱の隅をつつくようですが、このエントリーのcode要素が閉じられていません。

eller さんのコメント...

毎回ありがとうございます(^^;
確かにそのようです、修正しておきました。原因は人為的なミスかと思われます。