JS读取INI文件
来源:互联网 发布:数据库置疑的原因 编辑:程序博客网 时间:2024/06/06 09:39
//传入Ini文件路径,返回Json对象
function ParseInIFileToJson(strIniFilePath)
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile(strIniFilePath,1); //根据文件路径
var strFileAllValue = f.ReadAll(); //读取文件中的所有内容
var JsonValue = ParseINIString(strFileAllValue); //调用接口获取Json对象
f.close(); //进行文件关闭操作
return JsonValue; //返回Json对象
{
//利用正则表达式进行ini文件每行数据的匹配
var regex = {
section: /^\s*\[\s*([^\]]*)\s*\]\s*$/,
param: /^\s*([\w\.\-\_]+)\s*=\s*(.*?)\s*$/,
comment: /^\s*;.*$/
};
var JsonValue = {};
var lines = new Array();
lines = data.split(/\r\n|\r|\n/);
//将字符串进行根据回车拆分为字符串数组
var section = null;
//对字符串数组进行正则表达式匹配,来组装Json对象
var iArraySize = lines.length;
for(var i = 0; i < iArraySize; ++i)
{
line = lines[i];
if(regex.comment.test(line))
{
//如果为注释的话,不进行操作
}else if(regex.param.test(line))
{
var match = line.match(regex.param);
if(section){
JsonValue[section][match[1]] = match[2];
}else{
JsonValue[match[1]] = match[2];
}
}else if(regex.section.test(line))
{
var match = line.match(regex.section);
JsonValue[match[1]] = {};
section = match[1];
}else if(line.length == 0 && section)
{
section = null;
}
}
return JsonValue;
}
//根据Json对象和key值获取相关Ini文件中的值
function GetValueFromJsonByKey(JsonValue, key)
{
var value = null; //返回值
var keyValue = null; //临时存储当前key值
var strKeyArray = new Array();
strKeyArray = key.split('.'); //支持传入的key值样式: Key1.key2.key3
var iKeyCount = strKeyArray.length;
if(iKeyCount > 0)
{
keyValue = strKeyArray[0];
value = JsonValue[keyValue];
}
for(var iIndex = 1; iIndex < iKeyCount; ++iIndex)
{
keyValue = strKeyArray[iIndex];
value = value[keyValue];
}
return value;
function ParseInIFileToJson(strIniFilePath)
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile(strIniFilePath,1); //根据文件路径
var strFileAllValue = f.ReadAll(); //读取文件中的所有内容
var JsonValue = ParseINIString(strFileAllValue); //调用接口获取Json对象
f.close(); //进行文件关闭操作
return JsonValue; //返回Json对象
}
//进行Ini文件内容的解析,解析成Json格式
function ParseINIString(data){
//利用正则表达式进行ini文件每行数据的匹配
var regex = {
section: /^\s*\[\s*([^\]]*)\s*\]\s*$/,
param: /^\s*([\w\.\-\_]+)\s*=\s*(.*?)\s*$/,
comment: /^\s*;.*$/
};
var JsonValue = {};
var lines = new Array();
lines = data.split(/\r\n|\r|\n/);
//将字符串进行根据回车拆分为字符串数组
var section = null;
//对字符串数组进行正则表达式匹配,来组装Json对象
var iArraySize = lines.length;
for(var i = 0; i < iArraySize; ++i)
{
line = lines[i];
if(regex.comment.test(line))
{
//如果为注释的话,不进行操作
}else if(regex.param.test(line))
{
var match = line.match(regex.param);
if(section){
JsonValue[section][match[1]] = match[2];
}else{
JsonValue[match[1]] = match[2];
}
}else if(regex.section.test(line))
{
var match = line.match(regex.section);
JsonValue[match[1]] = {};
section = match[1];
}else if(line.length == 0 && section)
{
section = null;
}
}
return JsonValue;
}
//根据Json对象和key值获取相关Ini文件中的值
function GetValueFromJsonByKey(JsonValue, key)
{
var value = null; //返回值
var keyValue = null; //临时存储当前key值
var strKeyArray = new Array();
strKeyArray = key.split('.'); //支持传入的key值样式: Key1.key2.key3
var iKeyCount = strKeyArray.length;
if(iKeyCount > 0)
{
keyValue = strKeyArray[0];
value = JsonValue[keyValue];
}
for(var iIndex = 1; iIndex < iKeyCount; ++iIndex)
{
keyValue = strKeyArray[iIndex];
value = value[keyValue];
}
return value;
}
0 0
- JS读取INI文件
- node.js 读取ini文件
- Ini文件读取类
- 读取Ini文件
- java读取ini文件
- 读取INI文件
- vc读取ini文件
- c#读取ini文件
- c#读取ini文件
- ini文件读取(C#)
- 读取INI文件
- ini文件读取
- 读取INI文件
- vb读取ini文件
- VB读取INI文件
- delphi读取ini文件
- 读取ini文件
- C#读取INI文件
- meta标签详解
- Sublime Text 3 如何修改默认快捷键
- NNU_20161103_5PAT1057. 数零壹
- EMCA和DB的恩怨
- C语言实现队(循环队列)
- JS读取INI文件
- route命令详解与使用实例
- xshell和xftp终端工具推荐
- 虚拟币交易平台源码修改 二次开发 btchanges 增加充值3级奖励分红功能
- 2016.11.29 有阻
- 关于Hive数据仓库的那些事儿(一)模式设计
- 代码整洁之道学习总结(1)------有意义的命名
- Spark on Yarn
- 求列表的所有子集