電気ウナギ的○○

About Home

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

shinoda (2010年9月10日 23:58)

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 プログラマ

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/1279

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE