変数初期値テキストファイル読込のご紹介(変数初期値をテキストファイルに設定し、読み込むスクリプト)
以前、INIファイル読込はシナリオ共有サークルにアップしましたが、
全く、パラメータ設定なしの「変数初期値テキストファイル読込」をご紹介します。
ファイルのパスや、動作させる環境で変数の初期値を変えたい場合などに便利です。
開発と実行が異なる場合など、ファイルのパスが変わったりしますが、そのような場合にも
テキストファイルで指定すれば、シナリオを修正する、または環境別のシナリオを作る必要はありません。
テキストファイルは、メモ帳で
変数1 = 値1
変数2 = 値2
変数3 = 値3
・・・
と記述します。詳しくは、下記注釈を参照してください。
【ライブラリ名】
変数初期値テキストファイル読込
【注釈】
変数の初期値の読み込みを行います。
ファイル名は、シナリオと同じファイル名で拡張子をTXTにしてください。
保存場所もシナリオと同じフォルダにしてください。
ファイルは、テキストファイルですが、文字コードはShift-JISです。
(メモ帳では、文字コードをANSI)
変数1 = 値1
変数2 = 値2
変数3 = 値3
・・・
の形で登録しておき、このノードで指定した変数名に値をセットします。
変数が登録されていない場合は、無視されます。
【スクリプト】
var_scenario_file = GetUmsVariable("$SCENARIO-FILE")
If IsNull(var_scenario_file) Then
Err.Raise 1, "", "シナリオが保存されていません。(シナリオパス不明)"
End If
TXT = Left(var_scenario_file, Len(var_scenario_file) - 4) & "TXT"
'ファイルシステムオブジェクトを生成
Set objFSO = CreateObject("Scripting.FileSystemObject")
'TEXTファイルの存在チェック
If objFSO.FileExists(TXT) = False Then
Err.Raise 1, "", "初期値ファイルが見つかりません。(" & TXT & ")"
End If
'TEXTファイルの読み込み
Set objFile = objFSO.OpenTextFile(TXT)
Do While objFile.AtEndOfStream <> True
readData = objFile.ReadLine
eq = InStr(readData, "=")
If eq >= 2 Then
KM = Trim(Left(readData, eq - 1)) '項目名
VL = Right(readData, Len(readData) - eq)
SetUMSVariable KM, Trim(VL)
End If
Loop
objFile.Close
Set objFile = Nothing
Set objFSO = Nothing
今までも、初期値ファイルは使用していて、取得する項目名とセットする変数を指定するものでした。
最近、SetUMSVariableで、パラメータで指定した変数でなくても、変数に設定できることを学び、このように変更しました。
おかげで、初期値をセットする変数を増やしても、初期値ファイルだけで、スクリプトを変更することがなくなり、とても便利です。