当前位置:文档之家› VB 操作INI文件方法(经典详细教程)

VB 操作INI文件方法(经典详细教程)

1.定义一些变量Public IniFileName As String, vbNullString As String, maxSize As Long, section1 As String, section2 As String2.初始话这些变量Public Function initial()IniFileName = App.Path & "" & "config.ini"vbNullString = ""maxSize = 255section1 = "basics"section2 = "others"temp_str = String(255, 0) '建立缓冲区End Function3.声明INI函数Public Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" ( _ByVal lpApplicationName As String, _ByVal lpKeyName As String, _ByVal nDefault As Long, _ByVal lpFileName As String) As LongPublic Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ( _ByVal lpApplicationName As String, _ByVal lpKeyName As Any, _ByVal lpDefault As String, _ByVal lpReturnedString As String, _ByVal nSize As Long, _ByVal lpFileName As String) As LongPublic Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ( _ByVal lpApplicationName As String, _ByVal lpKeyName As Any, _ByVal lpString As Any, _ByVal lpFileName As String) As Long4.调用函数dim source as stringGetPrivateProfileString section1, "source", vbNullString, temp_str, maxSize, IniFileNamesource = Mid(temp_str, 0, 5) '缓冲区长度249,直接去匹配是不可以的,需要首先提取出有效字符xpos.Text = GetPrivateProfileInt(section1, "xpos", 1, IniFileName)dim a as intergera = GetPrivateProfileInt(section1, "auto", 1, IniFileName) WritePrivateProfileString section1, "auto", "0", IniFileName下一个例子Option ExplicitPrivate Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ( _ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, _ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As LongPrivate Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ( _ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, _ByVal lpFileName As String) As LongPrivate Function GetIni(ByVal ApplicationName As String, ByVal KeyName As String, ByVal FileName As String) As StringDim Buff As String, TmpStr As StringBuff = String(1024, 0)Call GetPrivateProfileString(ApplicationName, KeyName, "", Buff, Len(Buff) + 1, FileName)If Asc(Mid(Buff, 1, 1)) = 0 Then GetIni = "": Exit FunctionDim I As IntegerFor I = 2 To Len(Buff)If Asc(Mid(Buff, I, 1)) = 0 Then TmpStr = Mid(Buff, 1, I - 1)NextIf TmpStr = "" Then TmpStr = BuffGetIni = TmpStrEnd FunctionPrivate Function PutIni(ByVal ApplicationName As String, ByVal KeyName As String, ByVal Str As String, ByVal FileName As String) As Long WritePrivateProfileString ApplicationName, KeyName, Str, FileNameEnd FunctionPrivate Function DelIni(ByVal ApplicationName As String, ByVal KeyName As String, ByVal FileName As String) As LongWritePrivateProfileString ApplicationName, KeyName, 0&, FileNameEnd FunctionPrivate Sub Form_Load()Shell (GetIni("lujing", "pa", "INI文件的路径及名称.ini") & "\" & GetIni("lujing", "pa1", "INI文件的路径及名称.ini"))End Sub再次讲解这是API函数,使用前必须在公共部分定义,可以建公共模块,也可以在窗体最上面写.代码:Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As LongPublic Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVallpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long然后GetPrivateProfileString WritePrivateProfileString 这两个函数就可以用了.读取和写入代码如下Private Sub SetIniS(ByVal SectionName As String, ByVal KeyWord As String, ByVal ValStr As String)Dim res%res% = WritePrivateProfileString(SectionName, KeyWord, ValStr, "C:\123.ini") End SubPrivate Function GetIniS(ByVal SectionName As String, ByVal KeyWord As String, ByVal DefString As String) As StringDim llLen As LongDim ResultString As StringResultString = Space(100)llLen = GetPrivateProfileString(SectionName, KeyWord, DefString, ResultString, 100, "C:\123.ini")GetIniS = Mid(ResultString, 1, llLen)End Function。

相关主题