「 VS2015 」で「 INIファイル 」を扱う方法


最近は「Excel VBA」開発と「WordPress」でのWEBサイト製作のお話を頂くことが多いのですが、久々に「VB.NET」のお話を頂きました。

neuron

とあるチェーン店様の磁気カードを利用した会員システムで、カードリーダーNEURON様のリーダーを使用しています。こちらのリーダーは、付属のCDにサンプルが充実しているため、そちらを参考に簡単に開発を進めることが出来ました。

で、本題。今回頂いたお話が過去に「VB6.0」で開発されたアプリの踏襲で、これまで使用していた INIファイル を同じように扱いたいと言うことで、最近はXMLの方が主流なので使う機会は少ないかもしれませんが、メモがてら参考までに。

Win32APIを呼び出す

「GetPrivateProfileString」で値を取得、「WritePrivateProfileString」で値の書き込みを行います。

Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (
                ByVal lpApplicationName As String,
                ByVal lpKeyName As String,
                ByVal lpDefault As String,
                ByVal lpReturnedString As String,
                ByVal nSize As Integer,
                ByVal lpFileName As String) As Integer

Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (
                ByVal lpApplicationName As String,
                ByVal lpKeyName As String,
                ByVal lpString As String,
                ByVal lpFileName As String) As Integer

読み込むINIファイルの内容はこんな感じです。

[shop]
SHOPCODE=00001
Counter=1

こちらのINIファイル名を「MIPS.INI」とし、実行ファイルと同じフォルダに配置します。

INIファイルから値を読み込む

実際にINIファイルの内容を読み込みます。

Public Function GetIniStore() As String
    Const def As String = vbNullString
    Dim buff As String = New String(" ", 1024)
    Dim iniFile As String = Application.StartupPath & "\MIPS.ini"
    Dim ret As Integer = GetPrivateProfileString("SHOP", "SHOPCODE", def, buff, buff.Length, iniFile)
    Dim sVal As String = buff.Substring(0, buff.IndexOf(vbNullChar))
    Return sVal
End Function

Public Function GetIniCounter() As String
     Const def As String = vbNullString
     Dim buff As String = New String(" ", 1024)
     Dim iniFile As String = Application.StartupPath & "\MIPS.ini"
     Dim ret As Integer = GetPrivateProfileString("SHOP", "Counter", def, buff, buff.Length, iniFile)
     Dim sVal As String = buff.Substring(0, buff.IndexOf(vbNullChar))
     Return sVal
End Function
INIファイルに値を書き込む

続いて書き込み。

Public Sub WriteCounter(Item As String)
    Dim ret As Integer
    Dim iniFile As String = Application.StartupPath & "\MIPS.ini"
    Dim wItem As String = Item
    ret = WritePrivateProfileString("SHOP", "Counter", wItem, iniFile)
End Sub
とりあえず動かしてみる

とりあえず動かしてみます。ここまでのコードは「Module1.vb」として作成し、フォームにボタンを配置してみます。

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim ans As String = GetIniStore()
        MsgBox("店舗番号:" & ans)
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim ans As String = GetIniCounter()
        ans = ans + 1
        WriteCounter(ans)
        MsgBox("カウンターを増やしました。今のカウンターは" & ans & "です。")
    End Sub
End Class

自己紹介

松田 大と申しますm(_ _)m
インディーズでミュージシャンをやっていたのですがいつのまにか…

とある企業でショップのアルバイトスタッフから正社員、支店長を経てシステム部門に異動するという、開発担当としては変わった経緯を持っている方だと思います。

「Excel VBA」からスタートして、Yamaha RTX シリーズで VPN環境構築、Hyper-V環境構築、Windowsアプリ開発などを経験した後、「 WordPress 」に出会い、どっぷりハマっています。

現在勤めているETBS合同会社では、「 WordPress 」を活用したWEBサイト、業務用WEBアプリケーション開発を中心に、記事の執筆代行や掲載に必要な情報のリサーチ、映像のテロップ入れや切りはりなどの簡単な動画編集なども、まとめて行なっています。

宮崎県 都城市 出身。東京都 葛飾区 在住。現在、代表兼二児のパパ。子育てを通じて、こどもたちにもプログラミングの楽しさに触れてほしいと思うようになり、「 こどもICTかつしか教室 」を開講中。最近は童心に帰り、簡単なゲーム制作なんかも楽しんでいます(^_^)。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ビジュアルプログラミング オンライン無料体験レッスン モニター大募集
こどもICTかつしか教室 | 幼稚園年長 小学生 中学生 スクラッチ ビジュアルプログラミング
WordPress で困ったら? | 必要なときに必要な分だけ、お助けサポート
WordPress / PHP なんでも相談OK