Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> HSP2 -> HSP2.xで、LHA書庫の圧縮と解凍を実現するモジュール

HSP2.xで、LHA書庫の圧縮と解凍を実現するモジュール

Hot Soup Processor 2.x系で使える、LHA書庫の圧縮と解凍用のモジュールです。loadlibとllmodを使用しています。



これを改造したら、同じ要領で、ZIP圧縮・解凍も実現できるんじゃないかな??




;##############################
;        LHA書庫圧縮/解凍モジュール loadlib版
;
;        LHA書庫圧縮/解凍モジュールの、loadlib及び、
;        llmod使用版です。
;        lhsp.dllが要らない代わりに、
;        loadlib.dllと、llmod.asが必要です。
;##############################
;
;            【使用方法】
;
;    lha_init    LHAModuleの初期化
;    lha_cfg        UNLHA32の設定ダイアログを表示
;    lha_save p1,p2    LZH書庫ファイルを作成
;    lha_load p1,p2    LZH書庫ファイルを解凍
;
;● lha_init        LHAModuleの初期化
;    LHAModuleを初期化します。
;    最初に、必ず実行しておいてください。
;
;● lha_cfg        UNLHA32の設定ダイアログを表示
;    UNLHA32の設定ダイアログを表示します。
;    refstrに、設定した内容を格納しますが、
;    (たぶん)あまり必要性はありません。(^^;
;
;● lha_save p1,p2        LZH書庫ファイルを作成
;    指定したファイルを、LZH形式に圧縮します。
;    p1に、書庫ファイル名
;    p2に、圧縮前のファイル名/フォルダ名
;    を指定してください。
;    また、dialog命令などを使わずに、
;    そのままファイルパスを記述する場合は、
;    あらかじめchdir命令で、カレントディレクトリを変更しておいてください。
;    (例
;        ;選択したファイルを、file.lzhに圧縮する
;        lha_init
;        dialog "",16
;        lha_save "file.lzh",refstr
;
;● lha_load p1,p2        LZH書庫ファイルを解凍
;    指定したLZHファイルを解凍します。
;    p1に、書庫ファイル名
;    p2に、解凍後のファイル名/フォルダ名
;    を指定してください。
;    また、dialog命令などを使わずに、
;    そのままファイルパスを記述する場合は、
;    あらかじめchdir命令で、カレントディレクトリを変更しておいてください。
;    (例
;        ;選択した書庫を、folderに解凍する
;        lha_init
;        dialog "lzh",16
;        lha_load refstr,"folder"
;
;###############モジュール開始

#include "llmod.as"
#module "LHAMODULE2"
#deffunc lha_init
    ll_libload@ dll,"UNLHA32.DLL"
return
#deffunc lha_cfg
    mref st,64
    mref ret,65
    prm=0 : getptr prm.1,ret : prm.2=0
    dllproc "UnlhaConfigDialog",prm,3,dll
return
#deffunc lha_save str,str
    mref arcive,32
    mref file,33
    sdim cmd,$ffff
    cmd="a \""+arcive+"\" \""+curdir+"\" "+file+" -x"
    prm=0 : getptr prm.1,cmd : prm.2=0
    dllproc "Unlha",prm,3,dll
    sdim cmd,64
return
#deffunc lha_load str,str
    mref arcive,32
    mref file,33
    gosub chkfile
    sdim cmd,$ffff
    cmd="x \""+arcive+"\" "+file
    prm=0 : getptr prm.1,cmd : prm.2=0
    dllproc "Unlha",prm,3,dll
    sdim cmd,64
return
*chkfile
    strlen len,file
    tmp="" : peek tmp,file,len-1
    if (tmp!="\\"){file+"\\"}
return
#global

;#################モジュール終了

最初に記事を書いた日:2017/10/30

この記事をシェアする

このエントリーをはてなブックマークに追加

関連記事

Meteoric Streamについて

管理人

Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> HSP2 -> HSP2.xで、LHA書庫の圧縮と解凍を実現するモジュール