Visual Basic で正規表現と連想配列を使う

20100910_vb_test.jpg

さて、来週には Visual Basic を開発言語にする案件を受注できそうなので、色々と細々した動きを実験してみる。

何せ、.NET 系の Visual Basic は初めての経験なので(^^;、絶対に必要になる「正規表現」と「連想配列」の書き方もまったくわからん。
つーことで、入門書やサイトを参考に、取りあえず、

(1) コンフィグファイルを読み込む
    ※コンフィグファイルには、設定項目名と設定値がTAB区切りで書かれている
      (例)HOST ftp.exsample.com
(2) 正規表現を使い、設定項目名と設定値を切り出す
(3) 切り出した設定項目名をキーとした連想配列(ハッシュ)に設定値をセット

・・・という動きをするコンソールアプリケーションを書いてみた。

下記のような感じ。(Main 処理の For Each はデバッグ用なので意味無し)

Imports System
Imports System.IO
Imports System.Text
Imports System.Collections

Module Module1

    Public gConfig As Hashtable = New Hashtable

    Sub Main()

        ConfigRead()

        ' DEBUG用出力
        For Each key As String In gConfig.Keys
            Console.WriteLine("gConfig({0})={1}", key, gConfig(key))
        Next

    End Sub

    Sub ConfigRead()

        Dim line As String = ""
        Dim al As New ArrayList
        Dim fn As String = "M:\x\tmp\job\config.txt"

        Using sr As StreamReader = New StreamReader(fn, Encoding.GetEncoding("Shift_JIS"))

            line = sr.ReadLine()
            Do Until line Is Nothing
                al.Add(line)
                line = sr.ReadLine()
            Loop

        End Using

        For i As Integer = 0 To al.Count - 1

            Dim r As New System.Text.RegularExpressions.Regex("^(.+?)\t(.+)$")
            Dim mc As System.Text.RegularExpressions.MatchCollection = r.Matches(al.Item(i))

            For Each m As System.Text.RegularExpressions.Match In mc
                gConfig(m.Groups(1).Value) = m.Groups(2).Value
            Next

        Next i

    End Sub

End Module

これで、ばっちりグローバル変数で定義した連想配列 gConfig に、config.txt から読み込んだ設定内容がセットされた。

しかし、Visual Basic の正規表現。Web 上でも何か情報が妙に古かったり、そもそも情報が少なかったり。(^^:
あんま、VB の世界じゃ使われんのかね?(そう言えば、VB しか知らないプログラマに正規表現の話をしたら、きょとんとしてたな(^^;)

正規表現が使えれば、substr を始め、いくつかの文字列編集関係の命令は不要になるほど正規表現は強力なんだけどな。

もっと正規表現を使おう!!>VB プログラマ

トラックバック(0)

このブログ記事を参照しているブログ一覧: Visual Basic で正規表現と連想配列を使う

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/1279

コメントする

このブログ記事について

このページは、shinodaが2010年9月10日 23:58に書いたブログ記事です。

ひとつ前のブログ記事は「バルコムソリューションっていう胡散臭い会社」です。

次のブログ記事は「福山で「かっぱ寿司」」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら