VB.NET訪問INI文件代碼實(shí)現(xiàn)
當(dāng)程序員們?cè)谑褂?a >VB.NET編程語(yǔ)言進(jìn)行程序開發(fā)的時(shí)候,會(huì)逐漸的發(fā)現(xiàn),這款語(yǔ)言給他們帶來(lái)了不一樣的編程體驗(yàn),極大的提高了開發(fā)效率。首先就讓我們從VB.NET訪問INI文件的實(shí)現(xiàn)方法中來(lái)對(duì)此做一個(gè)解讀。
在VB.NET2005+winxp中,我使用GetPrivateProfileString實(shí)現(xiàn)VB.NET訪問INI文件這一功能,如果文件路徑中含有中文,就會(huì)遇到一個(gè)奇怪的問題:***次讀取正常,第二次讀取就取不到值
VB.NET訪問INI文件代碼如下:
- Private 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- Private m_filename As String =
"c:\椅子\slcuserinfo.INI"- Public Function GetINIValue(ByVal lpKeyName
As String, ByVal strName As String) As String- Dim strTmp As String
- 'Dim fileTmp As String
- 'fileTmp = m_filename
- strTmp = New String(" ", 100)
- 'Call GetPrivateProfileString(lpKeyName,
strName, "", strTmp, Len(strTmp), fileTmp)- Call GetPrivateProfileString(lpKeyName,
strName, "", strTmp, Len(strTmp), m_filename)- GetINIValue = Left$(strTmp, InStr(strTmp,
vbNullChar) - 1)- End Function
- Private 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- Private m_filename As String = "c:\椅子\
slcuserinfo.INI"- Public Function GetINIValue(ByVal lpKeyName
As String, ByVal strName As String) As String- Dim strTmp As String
- 'Dim fileTmp As String
- 'fileTmp = m_filename
- strTmp = New String(" ", 100)
- 'Call GetPrivateProfileString(lpKeyName,
strName, "", strTmp, Len(strTmp), fileTmp)- Call GetPrivateProfileString(lpKeyName,
strName, "", strTmp, Len(strTmp), m_filename)- GetINIValue = Left$(strTmp, InStr(strTmp,
vbNullChar) - 1)- End Function
反復(fù)試驗(yàn)過以后,發(fā)現(xiàn)取消注釋掉的代碼就可以正常運(yùn)行。這就是我們?yōu)榇蠹医榻B的VB.NET訪問INI文件具體實(shí)現(xiàn)方法。
【編輯推薦】