如何如何读取ini 文件啊~
比如我的ini 文件类容是[Info]
Skin=娱乐[Title]
TitleBarFlag=1
TitleBarWH=100,25
TitleBarLT=0,0
怎么读取到Skin=娱乐 这行里的 娱乐两个字啊~ 又该如何用Command控件 修改 娱乐 这两个字啊在程序里~ 各位大哥大姐 帮忙解决下哦 谢谢了~~~~
比如我的ini 文件类容是[Info]
Skin=娱乐[Title]
TitleBarFlag=1
TitleBarWH=100,25
TitleBarLT=0,0
怎么读取到Skin=娱乐 这行里的 娱乐两个字啊~ 又该如何用Command控件 修改 娱乐 这两个字啊在程序里~ 各位大哥大姐 帮忙解决下哦 谢谢了~~~~
Public IniFile As String
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
Function GetIniS(ByVal SectionName As String, ByVal KeyWord As String, ByVal DefString As String) As String Dim ResultString As String * 144, Temp As Integer
Dim s As String, i As Integer
Temp% = GetPrivateProfileString(SectionName, KeyWord, "", ResultString, 144, IniFile)
'检索关键词的值
If Temp% > 0 Then '关键词的值不为空
s = ""
For i = 1 To 144
If Asc(Mid$(ResultString, i, 1)) = 0 Then
Exit For
Else
s = s + Mid$(ResultString, i, 1)
End If
Next
Else
Temp% = WritePrivateProfileString(SectionName, KeyWord, DefString, IniFile)
'将缺省值写入INI文件
s = DefString
End If
GetIniS = s
End Function
Function GetIniN(ByVal SectionName As String, ByVal KeyWord As String, ByVal DefValue As Long) As Long Dim d As Long, s As String
d = DefValue
GetIniN = GetPrivateProfileInt(SectionName, KeyWord, DefValue, IniFile)
If d <> DefValue Then
s = "" & d
d = WritePrivateProfileString(SectionName, KeyWord, s, IniFile)
End If
End Function
Sub SetIniS(ByVal SectionName As String, ByVal KeyWord As String, ByVal ValStr As String) Dim res%
res% = WritePrivateProfileString(SectionName, KeyWord, ValStr, IniFile)
End Sub
Sub SetIniN(ByVal SectionName As String, ByVal KeyWord As String, ByVal ValInt As Long)
Dim res%, s$
s$ = Str$(ValInt)
res% = WritePrivateProfileString(SectionName, KeyWord, s$, IniFile)
End Sub
dim sSkin as string
sSkin=getinis("Info","Skin","") '该句读取ini文件中Skin的值
setinis "Info","Skin","新值" '该句将"新值"写入ini文件中Title字段中的几个值也可以作为字符串处理
'读写INI文件模块
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 AppName As String, ByVal KeyName As String, ByVal keydefault As String, ByVal Filename As String) As Long'Public Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
'获取指定小节所有项名和值的一个列表'想读取一个节名下的所有配置项用这种方法:
'Dim a() As String
's = myReadINI(file, "配置名1", vbNullString)
'a = Split(s, Chr(0))
'所有配置项的Key就进入了数组a
'若配置项很多,请考虑一下缓冲区的大小够不够(默认为1024)
'请放心,它可正确读取中文的Key与Value
Public Function myReadINI(ByVal file As String, ByVal sec As String, ByVal key As String, Optional ByVal Default As String = "", Optional BufLen As Long = 1024) As String
Dim i As Long, s As String, j As Long
s = Space(BufLen)
i = GetPrivateProfileString(sec, key, Default, s, BufLen, file)
If i > 0 Then
s = Replace(RTrim(s), Chr(0) & Chr(0), "")
If Right(s, 1) = Chr(0) Then
myReadINI = Left(s, Len(s) - 1)
Else
myReadINI = s
End If
End If
End Function'Public Function myReadINI(ByVal iniFileName, ByVal iniSection, ByVal iniKey, ByVal iniDefault) As String
' '若无项目名,默认为第一个名称 ; 若无键名,默认为第一个键名
' Dim lpReturnedString As String, nSize As Long, retval As Long
' '判断INI文件是否存在
' If Dir(iniFileName) <> "" Then
' lpReturnedString = String(255, 0)
' nSize = 255
' retval = GetPrivateProfileString(iniSection, iniKey, iniDefault, lpReturnedString, nSize, iniFileName)
' myReadINI = StrConv(LeftB$(StrConv(lpReturnedString, vbFromUnicode), retval), vbUnicode)
' End If
'End FunctionPublic Function myWriteINI(ByVal iniFileName As String, ByVal iniSection As String, ByVal iniKey As String, ByVal Info As String) As String
'该函数的使用与写注册表类似,可在INI文件中添加或修改项、键、值
'iniFileName为INI文件名,inisection为INI文件中的项目,inikey为项目下的键名称,Info为键值
Dim retval As Long
retval = WritePrivateProfileString(iniSection, iniKey, Info, iniFileName)
myWriteINI = LTrim$(Str$(retval))
End FunctionPublic Sub DelSectionINI(ByVal iniFileName As String, ByVal iniSection As String)
'该过程可删除INI文件中指定的项
'iniFileName为INI文件名,iniSection为指定的项
'判断INI文件是否存在
If Dir(iniFileName) <> "" Then
WritePrivateProfileString iniSection, vbNullString, vbNullString, iniFileName
End If
End SubPublic Sub DelKeyINI(ByVal iniFileName As String, ByVal iniSection As String, ByVal iniKey As String)
'该过程可删除INI文件中指定的键
'iniFileName为INI文件名,iniSection为指定的项,iniKey为指定的键
'判断INI文件是否存在
If Dir(iniFileName) <> "" Then
WritePrivateProfileString iniSection, iniKey, vbNullString, iniFileName
End If
End SubPublic Sub DelValueINI(ByVal iniFileName As String, ByVal iniSection As String, ByVal iniKey As String)
'该过程可删除INI文件中指定键的值
'iniFileName为INI文件名,iniSection为指定的项,iniKey为指定的键
'判断INI文件是否存在
If Dir(iniFileName) <> "" Then
WritePrivateProfileString iniSection, iniKey, "", iniFileName
End If
End SubPublic Sub DelFileINI(ByVal iniFileName As String)
'该过程可删除INI文件
'iniFileName为INI文件名
'判断INI文件是否存在
If Dir(iniFileName) <> "" Then
Kill iniFileName
End If
End Sub
'Text1 盛放取出的内容
Dim FS As New FileSystemObject
Dim TS As TextStream
Dim IniRows As Integer
Dim Str_Ini As String
IniRows = 50'读操作:
Set TS = FS.OpenTextFile(App.Path + "\楼主要读的文件.ini", 1)
For jsq = 1 To IniRows
'读出行的内容
Str_Ini= Trim(TS.ReadLine)
'查找,比对满足条件的行
If InStr(1, UCase(Str_Ini), "SKIN=") <> 0 Then
Text1.Text = Mid(Str_Ini, InStr(1, UCase(Str_Ini), "Skin=") + 5, Len(Str_Ini))
End If
Next jsq'写操作:
Set TS= FS.CreateTextFile(App.Path + "\楼主要读的文件.ini", True)
TS.WritenLine "[Info]"
TS.WriteLine "Skin=娱乐,这儿可以改成楼主要更改的内容"
TS.WritenLine ""
TS.WritenLine "[Title]"
TS.WritenLine "TitleBarFlag=1"
TS.WritenLine "TitleBarWH=100,25"
TS.WritenLine "TitleBarLT=0,0"
TS.Close
免费的源码、工具网站,欢迎大家访问!
http://www.j2soft.cn/
═══════════════════