Ini 操作
IniFile 类
IniFile类表示一个Ini文件
var ini = new IniFile();
函数 | 描述 | 用法 |
---|---|---|
setFileName(file) | 设置文件名称,绝对路径,也可以在构造函数传入,并不加载文件 | ini.setFileName("e:/test.ini") |
getFileName() | 获取文件名称,绝对路径 | var ininame = ini.getFileName() |
loadIniFile() | 加载传入的路径文件,返回true为加载成功 | ini.loadIniFile() |
saveIniFile() | 保存当前文件,返回true为保存成功 | ini.saveIniFile() |
checkLoad() | 检测当前对象是否加载过ini文件,返回true为加载过 | var check = ini.checkLoad() |
findSection(name) | 在ini里查找section,返回序号(从0开始),返回-1表示没找到 | var sidx = ini.findSection("Config") |
getSectionCount() | 获取ini文件中的section段数量 | var cnt = ini.getSectionCount() |
getSectionName(sidx) | 根据序号获取对应段的名称 | var name = ini.getSectionName(0) |
findKey(section,keyname) | 在section下查找key,返回序号,同名key返回序号最小的,返回-1 表示没找到。 section可以是段名(string),也可以是序号(int) | var kidx = ini.findKey("Config","key");var kidx = ini.findKey(0,"key"); |
getKeyCount(section) | 获取段下key的数量。 section可以是段名(string),也可以是序号(int) | var cnt = ini.getKeyCount("Config");var cnt = ini.getKeyCount(0); |
getKeyName(section,kidx) | 获取段下key的名称,kidx表示第几个key。 section可以是段名(string),也可以是序号(int) | var name = ini.getKeyName("Config",0);var name = ini.getKeyName(0,0); |
getKeyValue(section,key,defstr) | 获取键值,返回string,没找到返回defstr,defstr不传默认为 空字符串。 section可以是段名(string),也可以是序号(int)。 key可以是键名(string),也可以是序号(int) | var value = ini.getKeyValue("Config","test");var value = ini.getKeyValue(0,"test","aaaa");var value = ini.getKeyValue("Config",0,"aaaa"); |
addSection(section) | 添加一个section,返回true为添加成功 | ini.addSection("Config1","test"); |
delSection(section) | 删除一个section,返回true为成功。 section可以是段名(string),也可以是序号(int)。 | ini.delSection("Config1");ini.delSection(0); |
setSectionName(section,newname) | 修改section名称,返回true为成功。 section可以是段名(string),也可以是序号(int)。 | ini.setSectionName("Config","Config2");ini.setSectionName(0,"Config2"); |
delKey(section,key) | 删除一个键值。 section可以是段名(string),也可以是序号(int)。 key可以是键名(string),也可以是序号(int) | ini.delKey("Config","key");ini.delKey(0,0); |
setKeyName(section,key,newname) | 修改键名。 section可以是段名(string),也可以是序号(int)。 key可以是键名(string),也可以是序号(int) | ini.setKeyName("Config","key","key1");ini.setKeyName(0,0,"key1"); |
setKeyValue(section,key,value) | 修改键值。 section可以是段名(string),也可以是序号(int)。 key可以是键名(string),也可以是序号(int) | ini.setKeyValue("Config","key","value");ini.setKeyValue(0,0,"value"); |
addKeyValue(section,key,value) | 添加键值。 section可以是段名(string),也可以是序号(int)。 key是键名(string) | ini.addKeyValue("Config","key","value"); |
appendFile(otherIni) | 合并另一个ini文件,键名相同的忽略,不同的新增 | ini.appendFile(otherIni); |
例子:
function main(parm)
{
var ini = new IniFile(GetRoot() + "test.ini");
if(!ini.loadIniFile())
{
ini.addSection("Config");
ini.addKeyValue("Config","ip","192.168.1.1");
ini.addKeyValue("Config","port","6000");
ini.addSection("Section1");
var fidx = ini.findSection("Section1");
ini.addKeyValue(fidx,"key","value");
ini.saveIniFile();
return;
}
var ip = ini.getKeyValue("Config","ip","192.XXX.XXX");
var ip2 = ini.getKeyValue("Config","ip2","192.XXX.XXX");
var port = 9999;
var fidx = ini.findSection("Config");
var kidx = ini.findKey(fidx,"port");
if(kidx != 1)
{
port = UINT(ini.getKeyValue(fidx,kidx,"9999"));
}
print "ip:" + ip;
print "ip2:" + ip2;
print "port:" + port;
print ini.getKeyValue("Section1","key","err");
}
第一次运行根目录下会产生ini文件
[Config]
ip=192.168.1.1
port=6000
[Section1]
key=value
第二次运行结果:
ip:192.168.1.1
ip2:192.XXX.XXX
port:9999
value