3.INI ファイルへの書き込み及び読み込み(27_Sys_03) (旧、SampleNo.075) |
1.INI ファイルへの書き込み及び読み込み 2. 3. 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86 Option :[Compare Text] [Explicit On] [Infer On] [Strict On] Imports :追加なし 参照設定:追加なし その他 : : このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.INI ファイルへの書き込み及び読み込み |
Imports System.Runtime.InteropServices Public Class Form1 Private myLeft, myTop, myWidth, myHeight As Integer, myTxt As String Private iniFileName As String = "..\..\..\data\27_Sys_03.ini" 'INIファイル名(直接フルパスを指定してもOK) Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click 'INI ファイルから読み込み '戻り値(文字列)を受け取るバッファーを準備 Dim strBuffer As New System.Text.StringBuilder strBuffer.Capacity = 256 'バッファーのサイズを指定 Dim ret As Integer 'INIファイルよりキーの値を読み込み(整数値を取得する場合) myLeft = GetPrivateProfileInt("Form1Point", "Xpos", 0, iniFileName) myTop = GetPrivateProfileInt("Form1Point", "Ypos", 0, iniFileName) myWidth = GetPrivateProfileInt("Form1Size", "Width", 0, iniFileName) myHeight = GetPrivateProfileInt("Form1Size", "Height", 0, iniFileName) '文字列の値を取得する場合 ret = GetPrivateProfileString("Form1Text", "Text", "", strBuffer, strBuffer.Capacity, iniFileName) myTxt = strBuffer.ToString '結果を表示 Debug.WriteLine(myLeft) '110 Debug.WriteLine(myTop) '145 Debug.WriteLine(myWidth) '334 Debug.WriteLine(myHeight) '135 Debug.WriteLine(myTxt) 'INI ファイルの読み込み・書き込み(27_Sys_03) - VB2013 End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 'INI ファイルに各キーに対する値を取得して書き込み Dim ret As Integer '書き込みは文字列も整数値(文字列に変換して)も同じ方法で ret = WritePrivateProfileString("Form1Text", "Text", Me.Text.ToString, iniFileName) ret = WritePrivateProfileString("Form1Point", "Xpos", CStr(Me.Location.X), iniFileName) ret = WritePrivateProfileString("Form1Point", "Ypos", CStr(Me.Location.Y), iniFileName) ret = WritePrivateProfileString("Form1Size", "Width", CStr(Me.Width), iniFileName) ret = WritePrivateProfileString("Form1Size", "Height", CStr(Me.Height), iniFileName) '書き込んだ結果をメモ帳で見ると下記のようになっています。 ' [Form1Text] ' Text = INIファイルの読み込み・書き込み(75) ' [Form1Point] ' Xpos = 110 ' Ypos = 145 ' [Form1Size] ' Width = 334 ' Height = 135 End Sub '指定のINIファイルから文字列を取得する(P989) <DllImport("KERNEL32.DLL", CharSet:=CharSet.Auto)> _ Public Shared Function GetPrivateProfileString( _ ByVal lpAppName As String, _ ByVal lpKeyName As String, _ ByVal lpDefault As String, _ ByVal lpReturnedString As System.Text.StringBuilder, _ ByVal nSize As Integer, _ ByVal lpFileName As String) As Integer End Function '指定のINIファイルの指定のキーの文字列を変更する(P994) <DllImport("KERNEL32.DLL", CharSet:=CharSet.Auto)> _ Private Shared Function WritePrivateProfileString( _ ByVal lpAppName As String, _ ByVal lpKeyName As String, _ ByVal lpString As String, _ ByVal lpFileName As String) As Integer End Function '指定のINIファイルから整数値を取得する(P986) <DllImport("KERNEL32.DLL", CharSet:=CharSet.Auto)> _ Public Shared Function GetPrivateProfileInt( _ ByVal lpAppName As String, _ ByVal lpKeyName As String, _ ByVal nDefault As Integer, _ ByVal lpFileName As String) As Integer End Function End Class 今となっては、My.Settings を使用した方が簡単なのでこのようなコードは必要ないかも知れませんが、 .NET 系に移行した当初は、結構要望があったので作ったものをそのまま掲載しております。 |
2. |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |