2024年4月2日发(作者:)

1.定义一些变量

Public IniFileName As String, vbNullString As String, maxSize As Long,

section1 As String, section2 As String

2.初始话这些变量

Public Function initial()

IniFileName = & "" & ""

vbNullString = ""

maxSize = 255

section1 = "basics"

section2 = "others"

temp_str = String(255, 0) '建立缓冲区

End Function

3.声明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 Long

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 Long

Public Declare Function WritePrivateProfileString Lib "kernel32" Alias

"WritePrivateProfileStringA" ( _

ByVal lpApplicationName As String, _

ByVal lpKeyName As Any, _

ByVal lpString As Any, _

ByVal lpFileName As String) As Long

4.调用函数

dim source as string

GetPrivateProfileString section1, "source", vbNullString, temp_str, maxSize,

IniFileName

source = Mid(temp_str, 0, 5) '缓冲区长度249,直接去匹配是不可以的,需要首

先提取出有效字符

= GetPrivateProfileInt(section1, "xpos", 1, IniFileName)

dim a as interger

a = GetPrivateProfileInt(section1, "auto", 1, IniFileName)

WritePrivateProfileString section1, "auto", "0", IniFileName

下一个例子

Option Explicit

Private 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 Long

Private Declare Function WritePrivateProfileString Lib "kernel32" Alias

"WritePrivateProfileStringA" ( _

ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString

As Any, _

ByVal lpFileName As String) As Long

Private Function GetIni(ByVal ApplicationName As String, ByVal KeyName As

String, ByVal FileName As String) As String

Dim Buff As String, TmpStr As String

Buff = String(1024, 0)

Call GetPrivateProfileString(ApplicationName, KeyName, "", Buff, Len(Buff) + 1,

FileName)

If Asc(Mid(Buff, 1, 1)) = 0 Then GetIni = "": Exit Function

Dim I As Integer

For I = 2 To Len(Buff)

If Asc(Mid(Buff, I, 1)) = 0 Then TmpStr = Mid(Buff, 1, I - 1)

Next

If TmpStr = "" Then TmpStr = Buff

GetIni = TmpStr

End Function

Private Function PutIni(ByVal ApplicationName As String, ByVal KeyName As

String, ByVal Str As String, ByVal FileName As String) As Long

WritePrivateProfileString ApplicationName, KeyName, Str, FileName

End Function

Private Function DelIni(ByVal ApplicationName As String, ByVal KeyName As

String, ByVal FileName As String) As Long

WritePrivateProfileString ApplicationName, KeyName, 0&, FileName

End Function

Private 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 Long

Public Declare Function WritePrivateProfileString Lib "kernel32" Alias

"WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal

lpKeyName 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:")

End Sub

Private Function GetIniS(ByVal SectionName As String, ByVal KeyWord As

String, ByVal DefString As String) As String

Dim llLen As Long

Dim ResultString As String

ResultString = Space(100)

llLen = GetPrivateProfileString(SectionName, KeyWord, DefString, ResultString,

100, "C:")

GetIniS = Mid(ResultString, 1, llLen)

End Function