こんにちわ。
私のDefender入っている環境ではこんな感じで、
iniの読み書き出来てるのですが動きますか?
#ifndef __ini__
#define global __ini__
#module _ini_
#uselib "kernel32.dll
#func write "WritePrivateProfileStringA" sptr,sptr,sptr,sptr
#func read "GetPrivateProfileStringA" sptr,sptr,sptr,var,int,sptr
#define guard if mfile = "" { return -1 }
#deffunc inisel str file_
mfile = file_ : sdim mbuf, 512 : return
#deffunc iniget str sec_, str key_, var val_
guard
read sec_, key_, "", mbuf, varsize(mbuf), mfile
switch vartype(val_)
case vartype("str") : val_ = str(mbuf) : swbreak
case vartype("double") : val_ = double(mbuf) : swbreak
case vartype("int") : val_ = int(mbuf) : swbreak
swend
return
#deffunc iniset str sec_, str key_, var val_
guard
switch vartype(val_)
case vartype("str") : mbuf = strf("\"%s\"", val_) : swbreak
case vartype("double") : mbuf = strf("%.16e", val_) : swbreak
case vartype("int") : mbuf = strf("%d", val_) : swbreak
swend
write sec_, key_, mbuf, mfile
return
#deffunc inidel str sec_, str key_
guard : write sec_, key_, 0, mfile : return
#global
#endif
; サンプル
#if 1
name = "hoge" : age = 12 : height = 120.5
inisel ".\\settings.ini"
iniset "settings", "name", name
iniset "settings", "age", age
iniset "settings", "height", height
name = "" : age = 0 : height = 0.0
iniget "settings", "name", name
iniget "settings", "age", age
iniget "settings", "height", height
mes strf("%s, %d, %f",name, age, height)
#endif
あとは保存先のフォルダ、ファイルが読み取り専用になってるとか。。。
(でもbsaveは出来ているので、お使いのモジュールの問題かな?)
一案ですが、bsaveでテキストとして扱うなら、
csv形式として文字で扱うのが楽かもしれないですね。
行ごとに、split で","で区切って読み書きすれば良いかと思います。
↓こんな感じのテキストとして格納する。
ID,URL,name
0,http://hoge,ページ1
1,http://fuga,ページ2