您的当前位置:首页正文

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

2023-07-16 来源:钮旅网
1.定义一些变量

Public IniFileName As String, vbNullString As String, maxSize As Long, section1 As String, section2 As String 2.初始话这些变量

Public Function initial()

IniFileName = App.Path & \"\" & \"config.ini\" 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\maxSize, IniFileName

source = Mid(temp_str, 0, 5) '缓冲区长度249,直接去匹配是不可以的,需要首先提取出有效字符

xpos.Text = GetPrivateProfileInt(section1, \"xpos\

dim a as interger

a = GetPrivateProfileInt(section1, \"auto\

WritePrivateProfileString section1, \"auto\

下一个例子

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, \"\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\文件的路径及名称.ini\") & \"\\\" & GetIni(\"lujing\\"pa1\文件的路径及名称.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:\\123.ini\") 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:\\123.ini\")

GetIniS = Mid(ResultString, 1, llLen) End Function

因篇幅问题不能全部显示,请点此查看更多更全内容