'文件名sourcedb.ini文件
privatedeclarefunctiongetprivateprofilestringlib"kernel32"alias
"getprivateprofilestringa"(byvallpapplicationnameasstring,byvallpkeynameasany,byval
lpdefaultasstring,byvallpreturnedstringasstring,byvalnsizeaslong,byval
lpfilenameasstring)aslong
privatedeclarefunctionwriteprivateprofilestringlib"kernel32"alias
"writeprivateprofilestringa"(byvallpapplicationnameasstring,byvallpkeynameasany,byval
lpstringasany,byvallpfilenameasstring)aslong
'以下两个函数,读/写ini文件,固定节点setting,in_key为写入/读取的主键
'仅仅针对是非值
'y:yes,n:no,e:error
publicfunctiongetinitf(byvalin_keyasstring)asboolean
onerrorgotogetinitferr
getinitf=true
dimgetstrasstring
getstr=vba.string(128,0)
getprivateprofilestring"setting",in_key,"",getstr,256,app.path&"\sourcedb.ini"
getstr=vba.replace(getstr,vba.chr(0),"")
ifgetstr="1"then
getinitf=true
getstr=""
else
gotogetinitferr
endif
exitfunction
getinitferr:
err.clear
getinitf=false
getstr=""
endfunction
publicfunctionwriteinitf(byvalin_keyasstring,byvalin_dataasboolean)asboolean
onerrorgotowriteinitferr
writeinitf=true
ifin_data=truethen
writeprivateprofilestring"setting",in_key,"1",app.path&"\sourcedb.ini"
else
writeprivateprofilestring"setting",in_key,"0",app.path&"\sourcedb.ini"
endif
exitfunction
writeinitferr:
err.clear
writeinitf=false
endfunction
'以下两个函数,读/写ini文件,不固定节点,in_key为写入/读取的主键
'针对字符串值
'空值表示出错
publicfunctiongetinistr(byvalappnameasstring,byvalin_keyasstring)asstring
onerrorgotogetinistrerr
ifvba.trim(in_key)=""then
gotogetinistrerr
endif
dimgetstrasstring
getstr=vba.string(128,0)
getprivateprofilestringappname,in_key,"",getstr,256,app.path&"\sourcedb.ini"
getstr=vba.replace(getstr,vba.chr(0),"")
ifgetstr=""then
gotogetinistrerr
else
getinistr=getstr
getstr=""
endif
exitfunction
getinistrerr:
err.clear
getinistr=""
getstr=""
endfunction
publicfunctionwriteinistr(byvalappnameasstring,byvalin_keyasstring,byvalin_dataasstring)asboolean
onerrorgotowriteinistrerr
writeinistr=true
ifvba.trim(in_data)=""orvba.trim(in_key)=""orvba.trim(appname)=""then
gotowriteinistrerr
else
writeprivateprofilestringappname,in_key,in_data,app.path&"\sourcedb.ini"
endif
exitfunction
writeinistrerr:
err.clear
writeinistr=false
endfunction
->