パックファイル名の検証用スクリプト

// どんなパックファイル名が無効かを検証するスクリプト
// パック用ファイルの作成から生成したスクリプトの実行まで自動的に行います

#include "hspcmp.as"

#define SCRIPT_FILE_NAME "main.hsp"
#define EXE_FILE_NAME "packtest.exe"
#define OBJECT_FILE_NAME "start.ax"
#define PACKFILE_FILE_NAME "packfile"

// チェックするファイル名の配列
fileNames = "123456789012345", "1234567890123456"

// パック用ファイルの作成
notesel _
foreach fileNames
    notesave fileNames( cnt )
loop

// スクリプトを生成して保存
sdim script, 4096
script += "#packopt name \"" + EXE_FILE_NAME + "\"\n"
foreach fileNames
    script += "#pack \"" + fileNames( cnt ) + "\"\n"
loop
script += "title \"result ->\"\n"
script += "buf = \"\"\n"
foreach fileNames
    script += "exist \"" + fileNames( cnt ) + "\":"
    script += "if strsize == -1 :"
    script += "buf += \"" + fileNames( cnt ) + " is not found. \\n\""
    script += ": else :"
    script += "buf += \"" + fileNames( cnt ) + " is found. \\n\""
    script += "\n"
loop
script += "mesbox buf, ginfo_winx, ginfo_winy\n"
notesel script
notesave SCRIPT_FILE_NAME

// スクリプトの表示
title "code ->"
mesbox script, ginfo_winx, ginfo_winy

// スクリプトから実行ファイルの作成
hsc_ini SCRIPT_FILE_NAME
hsc_objname OBJECT_FILE_NAME
hsc_comp , 4 // make packfile and object file
gosub *error
hsc3_make dir_exe + "\\runtime" // hsp runtime path
gosub *error

gosub *clean
// 実行ファイルの実行
exec EXE_FILE_NAME
stop

*error
    if stat == 0 : return
    hsc3_messize errorBufSize
    sdim errorBuf, errorBufSize+1
    hsc_getmes errorBuf
    dialog errorBuf
    gosub *clean
    end

*clean
    hsc_bye

    // スクリプトとパック用ファイルを削除
    exist SCRIPT_FILE_NAME   : if strsize != -1 : delete SCRIPT_FILE_NAME
    exist OBJECT_FILE_NAME   : if strsize != -1 : delete OBJECT_FILE_NAME
    exist PACKFILE_FILE_NAME : if strsize != -1 : delete PACKFILE_FILE_NAME
    foreach fileNames
        exist fileNames( cnt ) : if strsize != -1 : delete fileNames( cnt )
    loop
    return

このスクリプト一つで、パック用ファイルの生成から生成したスクリプトの実行まで行います。 fileNames に色々なファイル名を代入してみて、どんなファイル名が有効でどんなファイル名が無効か分かります(実行結果が found なら有効、 not found なら無効)

インフォメーション

公開日時
2007年9月18日 午後7時55分18秒
最終更新日時
2007年9月18日 午後8時0分34秒
カテゴリ
HSP