JavaScript以键值对的形式读写文件

    技术2025-03-15  16

    <html><head><title> IniConfig</title>

    <script language=javascript>

    String.prototype.trim = function(){ return this.replace(/(^/s+)|(/s+$)/g,'');};

    IniConfig=function(iniFileName){ this.iniFileName = iniFileName; this._iniSecDictionary  =  new Array(); this.fso = new ActiveXObject("Scripting.FileSystemObject");};

    IniConfig.prototype._checkFile = function(){ if(!this.fso.FileExists(this.iniFileName)) {  this.fso.CreateTextFile(this.iniFileName,true,true); }};

    IniConfig.prototype.load = function(){ this._checkFile(); var currSecName = null; var fs = this.fso.OpenTextFile(this.iniFileName,1,false,-1); while(!fs.AtEndOfStream) {  var strLine = fs.ReadLine().trim();  if(strLine.length > 0)  {   var firchCh = strLine.substr(0,1);   if(firchCh != ';')   {    if(firchCh == '[')    {     var secName = strLine.substr(1,strLine.length - 2);     currSecName = secName;     this._iniSecDictionary[secName] = new Array();    }    else    {     var idx = strLine.indexOf('+');     var strKey = strLine.substring(0,idx);     var strVal = strLine.substr(idx + 1);

         if(currSecName == null)     {      throw("Ini文件格式不正确!");     }          this._iniSecDictionary[currSecName][strKey] = strVal;        }   }  } }

     fs.Close(); fs = null;};

    IniConfig.prototype.save = function(){ this._checkFile(); var dic = this._iniSecDictionary; var currSecName = null; var fs = this.fso.OpenTextFile(this.iniFileName,2,true,-1); for(var sec in dic) {  fs.WriteLine('[' + sec + ']');  alert('[' + sec + ']');  for(var key in dic[sec])  {   fs.WriteLine(key + '+' + dic[sec][key]);   alert(key + '+' + dic[sec][key]);  } }

     fs.Close(); fs = null;};

    IniConfig.prototype.get = function(secName,keyName){ var dic = this._iniSecDictionary; try {  return dic[secName][keyName]; } catch(e) {  return ''; }};

    IniConfig.prototype.set = function(secName,keyName,val){

     var dic = this._iniSecDictionary; try {  if(dic[secName] == null)  {   dic[secName] = new Array();  }  dic[secName][keyName] = val; } catch(e) {  alert(e.message); }};

    function $(objID){ return document.getElementById(objID);}

    </script>

    <script language=javascript>  //初始化对象 var iniFileObj = null; var iniFilePath = ""; iniFilePath = "C://Ini1.ini";  //加载文件,如果失败则创建文件 try {  iniFileObj = new IniConfig(iniFilePath);  iniFileObj.load(); } catch(e) {  alert(e.message);  $("idBtnGetValues").enable = false;  $("idBtnSetValues").enable = false; }  //获取值 function getValues(){  var sSeg = null;   var sKey = null;  var sValue = null;  sSeg = $("idSeg").value;  sKey = $("idKey").value;  sValue = iniFileObj.get(sSeg,sKey);  $("idValue").value = sValue;    alert("获取值:" + sValue); }  //设置值 function setValues(){  var sSeg = null;  var sKey = null;  var sValue = null;  sSeg = $("idSeg").value;  sKey = $("idKey").value;  sValue = $("idValue").value;  iniFileObj.set(sSeg,sKey,sValue);  iniFileObj.save();  alert("设置值成功。"); } </script>

    </head><body> Segment:<input id="idSeg" value=SEG1 /><br> Keys:<input id="idKey" value=KEY1 /><br> Values:<input id="idValue" value=Value1 /><br> <input type=button id="idBtnGetValues" Value="getValues()" onClick="getValues();" /> <input type=button id="idBtnSetValues" Value="setValues()" onClick="setValues();" /></body></html>

    最新回复(0)