sample_7z.hsp

sample\iron\sample_7z.hsp » Plain Format

;============================================================
;  sample_7z.hsp — hsp7z.dll (7-Zip 同梱) の使用例
;
;  7z / zip / tar.gz / xz / wim / iso など多数フォーマットに対応。
;============================================================

#include "hsp3_net_64.as"
#include "iron_7z.hsp"

	title "iron_7z sample"
	screen 0, 720, 560
	font "MS Gothic", 12

	mes "==== iron_7z (hsp7z.dll + 7za) サンプル ===="
	mes ""

	; 1. テスト用ファイル作成
	sdim txt, 256
	txt = "iron_7z sample text #1"
	bsave "sample_a.txt", txt, strlen(txt)
	txt = "iron_7z sample text #2 with more data"
	bsave "sample_b.txt", txt, strlen(txt)
	mes "[1] テストファイル作成: sample_a.txt, sample_b.txt"

	; 2. 7z アーカイブ作成
	iron_7z_add "sample.7z", "sample_a.txt"
	mes "[2] sample_a.txt → sample.7z (exit=" + stat + ")"

	iron_7z_add "sample.7z", "sample_b.txt"
	mes "    sample_b.txt 追加 (exit=" + stat + ")"

	; 3. 一覧表示
	iron_7z_list "sample.7z", names, sizes
	count = stat
	mes "[3] sample.7z エントリ数: " + count
	repeat count
		mes "     - " + names(cnt) + "  (" + sizes(cnt) + " bytes)"
	loop

	; 4. 整合性テスト
	iron_7z_test "sample.7z"
	if stat = 0 : mes "[4] 整合性テスト: OK" : else : mes "[4] 破損検出 (exit=" + stat + ")"

	; 5. 別ディレクトリに展開
	iron_7z_extract "sample.7z", "sample_extracted"
	mes "[5] sample_extracted\\ に展開 (exit=" + stat + ")"

	; 6. ZIP 形式でも作成 (7za は .zip も直接扱える)
	iron_7z_add "sample.zip", "sample_a.txt"
	iron_7z_add "sample.zip", "sample_b.txt"
	iron_7z_list "sample.zip", zn, zs
	mes "[6] sample.zip エントリ数: " + stat
	repeat stat
		mes "     - " + zn(cnt) + "  (" + zs(cnt) + " bytes)"
	loop

	; 7. 生コマンドライン呼び出し (低レベル)
	mes "[7] sevenz_run 直叩き (バージョン取得):"
	sdim verbuf, 4096
	sevenz_run "", verbuf, 4095
	; 先頭行だけ取得
	sdim head, 256
	repeat strlen(verbuf)
		c = peek(verbuf, cnt)
		if (c = 0x0d) | (c = 0x0a) : break
		poke head, cnt, c
	loop
	poke head, cnt, 0
	mes "     " + head

	mes ""
	mes "==== 完了 ===="
	stop