对JavaScript不太熟悉,目标是读取INI文件并获取值。 INI文件样本包含以下项目。
[Tutor]
Name = Ajast
Course = Victor
[Order]
Title = MAX New
Ring = 12990
我想阅读上面的内容,并存储到类似键值对的地图中。
例如
Key = Name & value = Ajast
就像.....
到目前为止,我所能做的就是想出一个HTML / JS,它将允许用户选择一个INI文件,然后阅读并在页面中显示其内容。
<html>
<head>
<title>reading file</title>
<script type="text/javascript">
var reader = new FileReader();
function readText(that){
if(that.files && that.files[0]){
var reader = new FileReader();
reader.onload = function (e) {
var output=e.target.result;
document.getElementById('main').innerHTML= output;
};//end onload()
reader.readAsText(that.files[0]);
}//end if html5 filelist support
}
</script>
</head>
<body>
<input type="file" onchange='readText(this)' />
<div id="main"></div>
</body>
</html>
我希望上述任务能够在JavaScript中完成。能做到吗?
答案 0 :(得分:0)
您可以使用this脚本通过javaScript在客户端读取* .ini数据:)
/*
Read a ini file
[Section1]
Param1=value1
[Section2]
Param2=value2
*/
var fs = require("fs");
function parseINIString(data){
var regex = {
section: /^\s*\[\s*([^\]]*)\s*\]\s*$/,
param: /^\s*([^=]+?)\s*=\s*(.*?)\s*$/,
comment: /^\s*;.*$/
};
var value = {};
var lines = data.split(/[\r\n]+/);
var section = null;
lines.forEach(function(line){
if(regex.comment.test(line)){
return;
}else if(regex.param.test(line)){
var match = line.match(regex.param);
if(section){
value[section][match[1]] = match[2];
}else{
value[match[1]] = match[2];
}
}else if(regex.section.test(line)){
var match = line.match(regex.section);
value[match[1]] = {};
section = match[1];
}else if(line.length == 0 && section){
section = null;
};
});
return value;
}
try {
var data = fs.readFileSync('C:\\data\\data.dat', 'utf8');
var javascript_ini = parseINIString(data);
console.log(javascript_ini['Section1']);
}
catch(e) {
console.log(e);
}