// オブジェクト生成
var objFileSys = new ActiveXObject("Scripting.FileSystemObject");
var objTextStream = objFileSys.GetFile("test.ini").OpenAsTextStream(1, 0);
var data = new Array();
// ファイルが最後まで読み込まれるまでループ 読み込み
while (objTextStream.AtEndOfLine==false) {
data[i] = objTextStream.ReadLine();
i++;
}
...下につづく
これで正常にテキストファイルが読み込めるようになりました。
最終的なスクリプトを下に示します。
function myReadInI(mySname, myPname, myFname){
var i = 0; // プロパティiとjはカウンタです。
var j = 0;
// オブジェクト生成
var objFileSys = new ActiveXObject("Scripting.FileSystemObject");
var objTextStream = objFileSys.GetFile(myFname).OpenAsTextStream(1, 0);
/*読み込みモードを使用、文字コードはUnicodeです。(Unicode文字が扱えるようにするため)*/
var data = new Array(); // 空の配列
// ファイルが最後まで読み込まれるまでループ 読み込み
while (objTextStream.AtEndOfLine==false) {
data[i] = objTextStream.ReadLine();
i++;
}
// 読み込み ここまで
// 解読 ここから
do{
var my1 = data[j].indexOf("[" + mySname);
j++;
}while(my1 == -1); // 一行ずつ検索し、該当するセクションを探す
j--;
// 指定のセクションの内容の始まる行数(0から)を退避
var mySstert = j + 1;
// セクションの終わりを探す(先ほど先頭が見つかった行の次からスタート)
j++;
do{
var my2 = data[j].indexOf("[");
j++;
}while(my2 == -1);
j--;
// 指定セクションの最後の行を退避
mySend = j - 1;
// パラメータ名を検索
var my4 = mySstert;
do{
var my6 = data[my4].substring(0, data[my4].indexOf("="));
my4++;
}while(my6 != myPname);
my4--;
// コメント除去
var my3 = data[my4].indexOf(";");
if(my3 != -1){
data[my4] = data[my4].slice(0, my3);
}
// 抽出
var Returndata = data[my4].substring(data[my4].indexOf("=") + 1);
// 得られた値を返す
return Returndata;
} // function宣言終了