VB 读和写配置文件

一个配置文件 config.ini

[FZ34566峰值参数]

判断系数=.1

过滤点数=2

[GB3567峰值参数]

判断系数=.1

过滤点数=8

Public Function GetIniStr(ByVal AppName As String, ByVal InKey As String, ByVal FileName As String) As String

On Error GoTo GetIniStrErr

If Len(Trim(InKey)) = 0 Then

GoTo GetIniStrErr

End If

Dim GetStr As String

GetStr = String(256, 0)

GetPrivateProfileString AppName, InKey, "", GetStr, 256, FileName

GetStr = Replace(GetStr, Chr(0), "")

If Len(GetStr) = 0 Then

GoTo GetIniStrErr

Else

GetIniStr = GetStr

GetStr = ""

End If

Exit Function

GetIniStrErr:

' Err.Clear

GetIniStr = ""

GetStr = ""

End Function

Public Function WriteInifile(ByVal Section As String, ByVal InKey As String, _

ByVal InData As String, ByVal FileName As String) As Boolean

On Error GoTo WriteInifileErr

WriteInifile = True

WritePrivateProfileString Section, InKey, InData, FileName

Exit Function

WriteInifileErr:

Err.Clear

WriteInifile = False

End Function

例如:

写数据:

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

Private Sub mnuGLD3917_Click()

Dim s As String

s = InputBox("请输入GB/T 3567峰值过滤点数", "调整峰值过滤点数", Format(GB3917Interval, "##0"))

If Len(s) <> 0 Or Val(s) <> 0 Then

GB3567Interval = Val(s)

WriteInifile "GB3567峰值参数", "过滤点数", GB3567Interval, App.Path & Config.ini

End If

End Sub