2011年10月08日


RegExp(正規表現)オブジェクトで、iniファイル(初期化ファイル)の読み出し

ini ファイルのフォーマットは単純で、データは[]で挟まれた文字列をセクション
としてエリアを決定して、その次に現れる1行単位に a=b という形で一つのデータ
が置かれます。

\[セクション\][^\[]+?a\s*=\s*([^\[]+?)\n

このパターンのサブマッチ文字列が b になります
strSection = "mail function"
strEntry = "smtp_port"

Dim Fso : Set Fso = CreateObject( "Scripting.FileSystemObject" )
strPath = "C:\php\php.ini-development"

' テキストファイル一括入力 --> 配列化
Dim obj : Set obj = Fso.OpenTextFile( strPath, 1 )
' テキスト全体を取得
TextData = obj.ReadAll()
obj.Close()

Dim regEx : Set regEx = New RegExp
regEx.Pattern = "\["&strSection&"\][^\[]+?"&strEntry&"\s*=\s*([^\[]+?)\n"
' 大文字と小文字を区別しない
regEx.IgnoreCase = True
' 文字列全体を検索
regEx.Global = True
' 検索を実行
Set Matches = regEx.Execute(TextData)
'() 内のサブマッチ文字列を取得
For Each Match in Matches
	Wscript.Echo Match.SubMatches(0)
Next


テストに使った php.ini-development

[Syslog]
; Whether or not to define the various syslog variables (e.g. $LOG_PID,
; $LOG_CRON, etc.).  Turning it off is a good idea performance-wise.  In
; runtime, you can define these variables by calling define_syslog_variables().
; http://php.net/define-syslog-variables
define_syslog_variables  = Off

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =



posted by at 17:50 | Comment(0) | その他 | このブログの読者になる | 更新情報をチェックする


この記事へのコメント
コメントを書く
お名前:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。