Skip to content

Instantly share code, notes, and snippets.

Created September 12, 2017 08:04
Show Gist options
  • Star 13 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save anonymous/dad852cde5df545ed81f1bc334ea6f72 to your computer and use it in GitHub Desktop.
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

nice example for parsing a ini file in javascript

@jadovi
Copy link

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