#define NUM 32
#define FILE "hspbc_chkbox.txt"
dim chk, NUM
objsize 180, 25
repeat NUM
pos cnt \ 3 * 200 + 30, cnt / 3 * 40 + 20 : chkbox "チェック" + cnt, chk.cnt
loop
objsize 60, 25
pos 430, 420 : button "クリア", *clear
pos 490, 420 : button "読込", *load
pos 550, 420 : button "保存", *save
stop
*clear
repeat NUM
objprm cnt, 0
loop
stop
*load
exist FILE
if strsize < 0 : stop
data = ""
tmp = 0
// 1バイト分ずつ処理する
repeat NUM / 8
bload FILE, data, 1, cnt
peek tmp, data
cont = cnt
// 1ビット分ずつ処理する
repeat 8
youso = cont * 8 + cnt // 配列要素番号を求める
chk.youso = tmp >> cnt & 1 // 指定ビット情報を格納
objprm youso, chk.youso // チェックボックスを更新
loop
loop
stop
*save
// 空でファイルの作成
data = ""
bsave FILE, data, 1
// 1バイト分ずつ処理する
repeat NUM / 8
tmp = 0
cont = cnt
// 1ビットの情報を1バイト分集める
repeat 8
youso = cont * 8 + cnt
tmp += chk.youso << cnt
loop
// 追記する
poke data, 0, tmp
bsave FILE, data, 1, cnt
loop
dialog "保存しました"
stop
|