Dictionaryで返します。
Option Explicit
'設定ファイルを読み込んでDictionaryで返す
Public Function GetConfig(strFileName)
Dim RegExp 'VBScript_RegExp_55.RegExp
Dim Match 'VBScript_RegExp_55.Match
Dim Matches 'VBScript_RegExp_55.MatchCollection
Dim dict 'Scripting.Dictionary
Dim fso 'Scripting.FileSystemObject
Dim strData 'ファイルのデータ
Dim i
'RegExp Setting
Set RegExp = CreateObject("VBScript.RegExp")
RegExp.IgnoreCase = False '大文字小文字を区別する
RegExp.Global = True
RegExp.MultiLine = True '複数行を対称にする
RegExp.Pattern = "^(\S+)\s*=\s*(\S+)*\s*$"
'Dictionary(keyは大文字小文字を区別する)
Set dict = CreateObject("Scripting.Dictionary")
'FilesyStemObject
Set fso = CreateObject("Scripting.FileSystemObject")
'ファイルチェック
If Not fso.FileExists(strFileName) Then
Set GetConfig = dict
Set dict = Nothing
Set fso = Nothing
Exit Function
End If
'ファイル読み込み
With fso.OpenTextFile(strFileName)
strData = .ReadAll
End With
Set fso = Nothing
'取り出し
Set Matches = RegExp.Execute(strData)
For Each Match In Matches
dict(Match.SubMatches(0)) = Match.SubMatches(1)
Next
Set GetConfig = dict
Set RegExp = Nothing
Set Matches = Nothing
Set Match = Nothing
Set dict = Nothing
End Function
一応、vbscriptも意識してみたつもり。
0 件のコメント:
コメントを投稿