/*
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(/[
]+/);
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:datadata.dat', 'utf8');
var javascript_ini = parseINIString(data);
console.log(javascript_ini['Section1']);
}
catch(e) {
console.log(e);
}