Skip to content

Instantly share code, notes, and snippets.

Created September 12, 2017 08:04
Show Gist options
  • Select an option

  • Save anonymous/dad852cde5df545ed81f1bc334ea6f72 to your computer and use it in GitHub Desktop.

Select an option

Save anonymous/dad852cde5df545ed81f1bc334ea6f72 to your computer and use it in GitHub Desktop.
nodejs
/* 

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);
}
@gitflo2000
Copy link
Copy Markdown

nice example for parsing a ini file in javascript

@jadovi
Copy link
Copy Markdown

jadovi commented Jan 2, 2021

still remains wonderful example

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment