「Mery.iniのオプション値を取得」の版間の差分

Sukemaru (トーク | 投稿記録)
Sukemaru (トーク | 投稿記録)
→GetIniOption2() 関数: 「次のセクションの開始位置」を修正
211行目: 211行目:
     id1 = iniText.search( reg1 ); // セクションの開始位置
     id1 = iniText.search( reg1 ); // セクションの開始位置
     if ( id1 != -1 ) { // セクション名が正しいか?
     if ( id1 != -1 ) { // セクション名が正しいか?
       id2 = iniText.indexOf( "[", id1 + 1 ); // 次のセクションの開始位置
       id2 = iniText.indexOf( "\r\n[", id1 + 1 );// 次のセクションの開始位置
       id2 = ( id2 > id1 ) ? id2 : iniLength;
       id2 = ( id2 > id1 ) ? id2 : iniLength;
       id3 = iniText.indexOf( "\n" + key, id1 ); // キーの開始位置
       id3 = iniText.indexOf( "\n" + key, id1 ); // キーの開始位置
       if ( id3 != -1 && id2 > id3 ) { // セクション内にキーがあるか?
       if ( id3 != -1 && id2 > id3 ) { // セクション内にキーがあるか?
         id4 = iniText.indexOf( "\r\n", id3 ); // 検索項目の行末位置
         id4 = iniText.indexOf( "\r\n", id3 ); // 検索項目の行末位置
         value = iniText.slice( id3 + key.length + 2, id4 );
         value = iniText.slice( id3 + key.length + 2, id4 ); // ("\n"+"=").length=2
         iniOptionArray.push( [ section, key, value ] );
         iniOptionArray.push( [ section, key, value ] );
       }
       }
257行目: 257行目:
<source lang="javascript">
<source lang="javascript">
// ① セクション名とキー名をセットにした配列 [ [section1, key1], [section2, key2] ... ]
// ① セクション名とキー名をセットにした配列 [ [section1, key1], [section2, key2] ... ]
//   セクション名に「\」がある場合は、ふたつ重ね「\\」で記述すること
//   セクション名に「\」がある場合は、ふたつ重ね「\\」で記述すること


var keyArray = new Array(
var keyArray = new Array(
   [ "General", "LineColumnView" ],
   [ "General", "LineColumnView" ], // 0 or 1
   [ "General", "FileFilter" ],  
   [ "General", "FileFilter" ], // "*.txt;*ini;*.htm; …"
   [ "General", "Untitled" ],  
   [ "General", "Untitled" ], // 「無題」の代替値 or ""
   [ "Display", "FallbackFonts" ],  
   [ "View", "FontName0" ], // フォント名(履歴) or ""
   [ "View", "FontName0" ],  
   [ "Macros\\Macro1", "FileName" ], // Macros\マクロ名.js or ""
   [ "Macros\\Macro1", "FileName" ],
   [ "Outline\\JavaScript", "Match1" ], // 文字列値 or 正規表現 or "..."
   [ "Themes\\Theme29", "Caption" ]
   [ "Themes\\Theme29", "Caption" ], // テーマ名 or ""
  [ "Display", "FallbackFonts" ], // フォント名 or "" (~ver2.7.4 では undefined)
  // 無効な セクション名 や キー名 を指定した場合
  [ "HOGE", "FUGA" ],  // [undefined] FUGA  =  null
  [ "Themes", "PIYO" ] // [Themes] undefined  =  null
);
);




// ② 関数の引数に配列をあたえて、変数 iniOption に代入する
// ② 関数の引数に配列をあたえて、変数 iniOption に代入する
//   関数の戻り値も配列 [ [section1, key1, value1], [section2, key2, value2] ... ]
//   関数の戻り値も配列 [ [section1, key1, value1], [section2, key2, value2] ... ]
// ※ value は文字列値(String)で返される(数字の場合も "1"、※ "1" !== 1 )
// ※ value は文字列値(String)で返される(数字の場合も "1"、※ "1" !== 1 )


スポンサーリンク