SHOJI's Code
 仕事や趣味で書いた各種言語のプログラミングコード(エクセルVBA,PHP,C/C++/C#,JavaScript等)、その他雑記。
2017.08<<123456789101112131415161718192021222324252627282930>>2017.10
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

以前の記事に関連して、今度はiniファイルを扱うクラス。当然未テスト(^^;
// 各コンストラクタ
function Ini()
{
this.initialize.apply(this,arguments);
}

// プロトタイプ
Ini.prototype = {
initialize: function(file) {
this.clear();
if( file!=null ) this.open(file);
},

// clearメソッド - 全削除
clear: function() {
try { delete this.items; } catch(e) {}
this.items = new Array(); // 項目
this.filename = null; // ファイル名
},

// openメソッド - Iniファイルの読込
open: function(filename) {
try {
var fso = new ActiveXObject("Scripting.FileSystemObject"); // FileSystemObjectを作成
var ini = fso.OpenTextFile(filename,1,false); // ファイルを開く

this.clear();
var sectionname = null;
var p = -1;

while( !ini.AtEndOfStream )
{
var line = ini.ReadLine();
line = line.replace(/^[ \t]+/,""); // 先頭の空白は削除
if( !line.match(/^[ \t]*$/) ) // 空行ではない
{
if( line.match(/^\[(.+)\][ \t]*$/) ) // セクション行
{
sectionname = RegExp.$1;
this.items[ sectionname ] = new Array(); // セクション行を追加
}
else if( sectionname != null && (p = line.indexOf('='))>=0 )
{
var keyname = line.substr(0,p);
var value = line.substr(p+1,line.length - p - 1);

this.items[ sectionname ][ keyname ] = value;
}
}
}

this.filename = filename;

ini = null; delete ini;
fso = null; delete fso;

return true;
}
catch(e)
{
return false;
}
},

// updateメソッド - iniファイルの更新
update: function(filename) {
if( filename != null ) this.filename = filename;

try {
var fso = new ActiveXObject("Scripting.FileSystemObject"); // FileSystemObjectを作成
var ini = fso.OpenTextFile(this.filename,2,true)

for( var sectionname in this.items )
{
ini.WriteLine( '[' + sectionname + ']' );
for( var keyname in this.items[sectionname] )
ini.WriteLine( keyname + '=' + this.items[sectionname][keyname] );
ini.WriteLine( '' );
}
ini = null; delete ini;
fso = null; delete fso;

return true;
}
catch(e)
{
return false;
}
},

// getItemメソッド - 項目の値取得
getItem: function(sectionname, keyname) {
if( sectionname in this.items )
if( keyname in this.items[sectionname] )
return this.items[sectionname][keyname];
return '';
},

// setItemメソッド - 項目の値設定
setItem: function(sectionname, keyname, value, updateflag) {
if( updateflag == null ) updateflag = true;

if( !(sectionname in this.items) )
this.items[ sectionname ] = new Array();

this.items[ sectionname ][ keyname ] = value;

if( updateflag && this.filename!=null ) this.update();
}
};


テーマ:JavaScript(ジャバスクリプト) - ジャンル:コンピュータ
コメント
この記事へのコメント
コメントを投稿する

管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2004-2006 SHOJI, Powered By FC2ブログ all rights reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。