HSP3.4のDPMファイルをもっと楽して作る(自動化してゆく)
こんにちは。
dpmファイルを手動で作るの面倒ですよね?
暗号化キーを入力して
ファイル名決めて
いちいちフォルダごとに手動で指定して……。
フォルダが増えれば増えるほど地獄ですよ。
じゃあ
自作の暗号化→bsave bloadからの復号化
というのも悪くはないですが
めんどくさいなあー!
……ところでこれはどうやって暗号化してるんでしょうね?
ということで今回は
サンプルファイルであるmkdpm.hspを利用して
ある程度自動化してゆこうという話です
親切な人なら作ったファイルを投げてくれるのでしょうが
そこまでするのが正直面倒くさかった。
ではmkdpm.hspを開いてください。
HSPのサンプルフォルダに入っているので
直接開いてもいいですし
エディタでF1を押すと出てくるHSPDocument Libraryで
検索してもよいでしょう
暗号化をしているのは以下の部分です
*mkdpm
sname = "packfile"
chdir fname
dirlist s1,"*.*",0
notesel s1
repeat notemax
noteget ff,cnt
hed=""
if enc : hed="+"
if ff="packfile" : hed=";"
if getpath(ff,2)=".dpm" : hed=";"
if hed!="" : noteadd hed+ff,cnt,1
loop
noteadd "; packfile generated by mkpack",0
notesave sname ; テキストファイルをセーブ
title "Building DPM..."
hsc_ini ""
pack_ini dname+".dpm"
pack_make 1,deckey
title "Complete."
stop
(mkpack.hspより引用)この部分をそのまま使うと良いでしょう。
(stopはreturnに書き換えるとかしようね。)
しかし、これだけでは使えない命令があります
ちゃんとインクルード部分もコピーしておきましょう
ちなみに
hsc_ini, pack_ini, pack_makeが "hspcpm.as"です
"hspext.as"はdirlistが内蔵命令じゃなかった頃の名残でしょうか?
一応インクルードしておきましょう。
さて、これであとは変数をこちらで各種代入してあげれば
自動化が完成するわけです。
箇条書きしておきますね。
- fname = "" ;ファイルネーム
- dname = "";ディレクトリ(フォルダ)ネーム
- enc = 1 ;暗号化するかどうか(1で暗号化,0でしない)
- deckey = 0 ;暗号化キー(0で標準キー,その他ならばその番号で)
もう一度張っておきますが
ちゃんと一つ一つ対応してしているのが分かると思います。
あとは配列変数を作って
ループ命令でひとつづつ生成するだけです。
おつかれさまでした。
まあHSPでそんな膨大な量作る想定では
ないのでしょうけどね。
HSPで無理やりやってゆく人向けですね。