Vb.Net 讀取ini檔範例
首先建立ini檔案
[City]
City_1=台北
City_2=台中
City_3=高雄
[food]
food_1=米
food_2=水果
food_3=大麥
[goods]
goods_1=汽車
goods_2=貨輪
goods_3=飛機
範例程式如下:(VB2005)
Imports System.Text
Imports System.Runtime.InteropServices
Public Class Form1
'2.宣告方法:
'* lpAppName:指向包含Section 名稱的字符串地址
'* lpKeyName:指向包含Key 名稱的字符串地址
'* lpDefault:如果Key 值沒有找到,缺省返回缺省的字符串
'* lpReturnedString:用於保存返回字符串的緩衝區
'* nSize: 緩衝區的長度
'* lpFileName :ini 文件的文件名
Public Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" ( _
<MarshalAs(UnmanagedType.LPStr)> ByVal lpApplicationName As String, _
<MarshalAs(UnmanagedType.LPStr)> ByVal lpKeyName As String, _
<MarshalAs(UnmanagedType.LPStr)> ByVal lpDefault As String, _
<MarshalAs(UnmanagedType.LPStr)> ByVal lpReturnedString As StringBuilder, _
ByVal nSize As UInt32, _
<MarshalAs(UnmanagedType.LPStr)> ByVal lpFileName As String) As UInt32
Public Declare Function WritePrivateProfileString Lib "kernel32" _
Alias "WritePrivateProfileStringA" ( _
<MarshalAs(UnmanagedType.LPStr)> ByVal lpApplicationName As String, _
<MarshalAs(UnmanagedType.LPStr)> ByVal lpKeyName As String, _
<MarshalAs(UnmanagedType.LPStr)> ByVal lpReturnedString As StringBuilder, _
<MarshalAs(UnmanagedType.LPStr)> ByVal lpFileName As String) As UInt32
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'3.使用方式:
'讀出ini檔,區段裡的值:
Dim sKeyValue As New StringBuilder(1024)
Dim nSize As UInt32 = Convert.ToUInt32(1024)
Dim sinifilename As String = Application.StartupPath & "\\test.ini"
'參數一 Section Name
'參數二 於.ini中的項目
'參數三 項目的內容
'參數四 .ini檔的名稱
'參數五 大小
'參數六 路徑
GetPrivateProfileString("City", "City_1", "", sKeyValue, nSize, sinifilename)
Label1.Text = sKeyValue.ToString
GetPrivateProfileString("City", "City_2", "", sKeyValue, nSize, sinifilename)
Label2.Text = sKeyValue.ToString
GetPrivateProfileString("City", "City_3", "", sKeyValue, nSize, sinifilename)
Label3.Text = sKeyValue.ToString
GetPrivateProfileString("food", "food_1", "", sKeyValue, nSize, sinifilename)
Label4.Text = sKeyValue.ToString
GetPrivateProfileString("food", "food_2", "", sKeyValue, nSize, sinifilename)
Label5.Text = sKeyValue.ToString
GetPrivateProfileString("food", "food_3", "", sKeyValue, nSize, sinifilename)
Label6.Text = sKeyValue.ToString
GetPrivateProfileString("goods", "goods_2", "", sKeyValue, nSize, sinifilename)
'Label8.Text = sKeyValue.ToString
GetPrivateProfileString("goods", "goods_3", "", sKeyValue, nSize, sinifilename)
'Label9.Text = sKeyValue.ToString
End Sub
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
Dim sKeyValue As New StringBuilder(1024)
Dim nSize As UInt32 = Convert.ToUInt32(1024)
Dim sinifilename As String = Application.StartupPath & "\\test.ini"
GetPrivateProfileString("goods", "goods_1", "", sKeyValue, nSize, sinifilename)
'Label7.Text = sKeyValue.ToString
Dim drawstring1 = "F1"
Dim drawstring2 = sKeyValue.ToString
Dim x1 = 0, y1 = 0, x2 = 8, y2 = 15 '定義字體左上角位置
Dim drawfont1 As New Font("Helvetica", 11, FontStyle.Bold) '定義字型
Dim drawfont2 As New Font("Microsoft JhengHei", 13, FontStyle.Bold) '定義字型
PictureBox1.BackColor = Color.FromArgb(0, 136, 254)
Dim mycolor1 As New SolidBrush(Color.FromArgb(255, 255, 255)) '定義字體顏色
Dim mycolor2 As New SolidBrush(Color.FromArgb(255, 255, 255)) '定義字體顏色
e.Graphics.DrawString(drawstring1, drawfont1, mycolor1, x1, y1)
e.Graphics.DrawString(drawstring2, drawfont2, mycolor2, x2, y2)
End Sub
Private Sub PictureBox2_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox2.Paint
Dim sKeyValue As New StringBuilder(1024)
Dim nSize As UInt32 = Convert.ToUInt32(1024)
Dim sinifilename As String = Application.StartupPath & "\\test.ini"
GetPrivateProfileString("goods", "goods_2", "", sKeyValue, nSize, sinifilename)
'Label7.Text = sKeyValue.ToString
Dim drawstring1 = "F2"
Dim drawstring2 = sKeyValue.ToString
Dim x1 = 0, y1 = 0, x2 = 8, y2 = 15 '定義字體左上角位置
Dim drawfont1 As New Font("Helvetica", 11, FontStyle.Bold) '定義字型
Dim drawfont2 As New Font("Microsoft JhengHei", 13, FontStyle.Bold) '定義字型
PictureBox2.BackColor = Color.FromArgb(0, 136, 254)
Dim mycolor1 As New SolidBrush(Color.FromArgb(255, 255, 255)) '定義字體顏色
Dim mycolor2 As New SolidBrush(Color.FromArgb(255, 255, 255)) '定義字體顏色
e.Graphics.DrawString(drawstring1, drawfont1, mycolor1, x1, y1)
e.Graphics.DrawString(drawstring2, drawfont2, mycolor2, x2, y2)
End Sub
Private Sub PictureBox3_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox3.Paint
Dim sKeyValue As New StringBuilder(1024)
Dim nSize As UInt32 = Convert.ToUInt32(1024)
Dim sinifilename As String = Application.StartupPath & "\\test.ini"
GetPrivateProfileString("goods", "goods_3", "", sKeyValue, nSize, sinifilename)
'Label7.Text = sKeyValue.ToString
Dim drawstring1 = "F3"
Dim drawstring2 = sKeyValue.ToString
Dim x1 = 0, y1 = 0, x2 = 8, y2 = 15 '定義字體左上角位置
Dim drawfont1 As New Font("Helvetica", 11, FontStyle.Bold) '定義字型
Dim drawfont2 As New Font("Microsoft JhengHei", 13, FontStyle.Bold) '定義字型
PictureBox3.BackColor = Color.FromArgb(0, 136, 254)
Dim mycolor1 As New SolidBrush(Color.FromArgb(255, 255, 255)) '定義字體顏色
Dim mycolor2 As New SolidBrush(Color.FromArgb(255, 255, 255)) '定義字體顏色
e.Graphics.DrawString(drawstring1, drawfont1, mycolor1, x1, y1)
e.Graphics.DrawString(drawstring2, drawfont2, mycolor2, x2, y2)
End Sub
End Class