
最近は「Excel VBA」開発と「WordPress」でのWEBサイト製作のお話を頂くことが多いのですが、久々に「VB.NET」のお話を頂きました。
とあるチェーン店様の磁気カードを利用した会員システムで、カードリーダーは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かつしか教室 」を開講中。最近は童心に帰り、簡単なゲーム制作なんかも楽しんでいます(^_^)。
インディーズでミュージシャンをやっていたのですがいつのまにか…
とある企業でショップのアルバイトスタッフから正社員、支店長を経てシステム部門に異動するという、開発担当としては変わった経緯を持っている方だと思います。
「Excel VBA」からスタートして、Yamaha RTX シリーズで VPN環境構築、Hyper-V環境構築、Windowsアプリ開発などを経験した後、「 WordPress 」に出会い、どっぷりハマっています。
現在勤めているETBS合同会社では、「 WordPress 」を活用したWEBサイト、業務用WEBアプリケーション開発を中心に、記事の執筆代行や掲載に必要な情報のリサーチ、映像のテロップ入れや切りはりなどの簡単な動画編集なども、まとめて行なっています。
宮崎県 都城市 出身。東京都 葛飾区 在住。現在、代表兼二児のパパ。子育てを通じて、こどもたちにもプログラミングの楽しさに触れてほしいと思うようになり、「 こどもICTかつしか教室 」を開講中。最近は童心に帰り、簡単なゲーム制作なんかも楽しんでいます(^_^)。








コメントを残す