「Mery.iniのオプション値を取得」の版間の差分
編集の要約なし |
|||
| 3行目: | 3行目: | ||
Mery.ini ファイル内の各行<br> | Mery.ini ファイル内の各行<br> | ||
'''''OptionName=value''''' <br> | '''''OptionName=value''''' <br> | ||
の「項目名 key」の文字列を指定して「値 value」を取得するための '''組み込み用関数''' です。<br> | |||
[[includeライブラリ]] の [[includeライブラリ#MeryInfo.js|MeryInfo.js]] とは異なり、Mery.ini の任意の項目名(左辺)で検索をかけて、生の値(右辺)をそのまま取得します。 | [[includeライブラリ]] の [[includeライブラリ#MeryInfo.js|MeryInfo.js]] とは異なり、Mery.ini の任意の項目名(左辺)で検索をかけて、生の値(右辺)をそのまま取得します。 | ||
* [[#関数本体|組み込み関数本体]] を任意のマクロのソースコード内にペーストして使用します。 | |||
: 使い方は [[#使い方|使用例]] を参考にしてください。 | |||
* INI 内に同名の「項目名」がある場合は、さいしょにヒットした項目の「値」のみを返します。これは、引数の配列の要素(項目名)と戻り値の配列の要素(値)を 1 対 1 で対照させるための仕様です。 | |||
* 「オプション項目名」の記述を間違えると ''var value = iniText.match(reg)[0]'' の行でエラーになります。これにより引数の記述のミスを指摘できるので、エラー回避の処理は入れてありません。 | |||
* 「Mery.exe」自体のファイル名をリネームしている場合、%AppData%\Mery\Mery.ini を参照できません(ポータブル版であれば参照可)。 | |||
* '''このマクロは Mery.ini の内容を編集(書き換え)するものではありません。 | * '''このマクロは Mery.ini の内容を編集(書き換え)するものではありません。''' | ||
* 基本的に Mery.ini は[[ヘルプ:ツール#オプション|オプション]]設定パネルを [OK] で閉じたときと Mery を終了したときにしか更新されず、標準メニューバー、ツールバーアイコン、右クリックメニュー、ショートカットキー、マクロ等でエディタの設定状態を変更しているばあい、INI の内容が最新の状態とはなりません。 <br> → | * 基本的に Mery.ini は[[ヘルプ:ツール#オプション|オプション]]設定パネルを [OK] で閉じたときと Mery を終了したときにしか更新されず、標準メニューバー、ツールバーアイコン、右クリックメニュー、ショートカットキー、マクロ等でエディタの設定状態を変更しているばあい、INI の内容が最新の状態とはなりません。 <br> → かならずしもエディタの表示状態どおりの値を取得できるわけではありません。 | ||
よって MeryInfo.js にはない項目として「行の表示方法」の取得ぐらいしか使い道がない… | : よって MeryInfo.js にはない項目として「行の表示方法」の取得ぐらいしか使い道がない… | ||
* Mery.ini の直接編集でオプションパネルから設定変更できない「'''隠し機能'''」項目をカスタマイズしている人なら、現在の設定値の確認などにも使えるかも? | * Mery.ini の直接編集でオプションパネルから設定変更できない「'''隠し機能'''」項目をカスタマイズしている人なら、現在の設定値の確認などにも使えるかも? | ||
=== ソースコード === | === ソースコード === | ||
| 61行目: | 66行目: | ||
.replace(/^[^=]+=(.*)$/, "$1"); | .replace(/^[^=]+=(.*)$/, "$1"); | ||
// 10進数なら Number 型で返す | // 10進数なら Number 型で返す | ||
if ( /^-?[0-9]+$/.test( value ) ) { | if (/^-?[0-9]+$/.test( value)) { | ||
value = Number( value ); | value = Number(value); | ||
} | } | ||
dist.push(value); | dist.push(value); | ||
| 98行目: | 103行目: | ||
// ③-1.(例1)取得したオプションをダイアログで順々に表示する | // ③-1.(例1)取得したオプションをダイアログで順々に表示する | ||
for ( var i = 0; i < iniItem.length; i ++ ) { | for ( var i = 0, type; i < iniItem.length; i ++ ) { | ||
type = Object.prototype.toString.call( iniValue[i] ).slice( 8, -1 ); | |||
Alert( iniItem[i] + " = " + iniValue[i] + "\nobject type: " + type ); | Alert( iniItem[i] + " = " + iniValue[i] + "\nobject type: " + type ); | ||
} | } | ||
スポンサーリンク