これ、ごちゃごちゃし過ぎて参考にはならないと思いますけど
index.datから抜くしかないような気がしますが、、
#include "hspext.as"
screen 0, 800, 600
chdir dirinfo (0x10022)
dirlist2h 1
dirlist2 dir_size, "*.dat", 3
sdim history, dir_size
dirlist2r history
notesel history
dim i
dim x
sdim history_file, dir_size
sdim name, 16, noteinfo (0)
repeat noteinfo (0)
getstr buf, history, i
i + strsize
if instr (buf, 0, "MSHist01") ! -1 {
history_file + buf + "\n"
name(x) = strmid (buf, 20, 16)
x++
}
loop
dim index
pos 0, 0
objsize 300
listbox index, 500, history_file
sdim data
pos 310, 0
mesbox data, 400, 500, 5
check = 1
dim x, 2
notesel history_file
repeat
if check ! index {
noteget buf, index
exist buf
sdim file, strsize
bload buf, file
sdim name_id
sdim history_data, strsize
repeat strsize - 15
memcpy name_id, file, 16, 0, cnt
if name_id = name(index) {
repeat , cnt
if peek (file, cnt) = $40 {
x(0) = cnt
}
if peek (file, cnt) = 0 {
x(1) = cnt
break
}
loop
sdim url, x(1) - x(0)
memcpy url, file, x(1) - x(0), 0, x(0) + 1
history_data + url + "\n"
}
loop
objprm 1, history_data
check = index
}
await 100
loop