很多时候我们编一个程序不一定要用到注册表来保存设置(如果说一个程序没有设置就不算好程序了)。INI是一个很好的选择。有人说,Savesetting是一个不错的选择,但是我了解到,不能永久的保存(起码在系统重装的时候会丢失)。于是Ini作为一个Windows配置文件,可以放在本地路径,优势就呈现出来。下面讨论一下这个问题。
在网上看过例子,但是对中文支持不好。。。。(这个是自己写的,实现了对中文的支持)
以下两种方法,喜欢用哪个就用哪个
以下放在模块中
程序代码:
以上是模块的写法,可以 写、读、删
下面是类模块 名字为 classIniFile.cls
程序代码:
在网上看过例子,但是对中文支持不好。。。。(这个是自己写的,实现了对中文的支持)
以下两种方法,喜欢用哪个就用哪个
以下放在模块中
程序代码:
'***********************************************************
'**模 块 名 ModIniFile
'**作 用 INI文件操作(包括,读、写、删除),很方便,对中文支持很好。
'**作 者 石陆
'**制作日期 2007年12月8日9:57:31
'**修 改
'**修改日期
'**石陆软件屋 http://baidu.bzzo.net
'***********************************************************
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'完成 d:\123.ini 内容如下-------写INI
'
'[main]
'Caption = 石陆软件屋
'例句 SaveINI "main", "Caption", "石陆软件屋", "D:\123.ini"
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'd:\123.ini 内容如下-------读取INI
'
'[main]
'Caption = 石陆软件屋
'例句 GetINI("main", "Caption", "'http://baidu.bzzo.net", "D:\123.ini")
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, 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 String, ByVal lpString As Any, ByVal lpFileName As String) As Long
'Const pa As String = "C:\Users\BAIDU-ZCY\Desktop\ccc.ini"
Public Function WriteINI(ByVal Genus As String, ByVal Item As String, ByVal Value As String, ByVal InIname As String) As Long
WriteINI = WritePrivateProfileString(Genus, Item, Value, InIname)
End Function
Public Function ReadINI(ByVal Genus As String, ByVal Item As String, ByVal Default As String, ByVal InIname As String) As String
ReadINI = String$(255, 0)
GetPrivateProfileString Genus, Item, Default, ReadINI, 256, InIname
ReadINI = Replace(ReadINI, Chr(0), "")
End Function
Sub DelItem(ByVal Genus As String, ByVal Item As String, ByVal InIname As String)
WritePrivateProfileString Genus, Item, 0&, InIname
End Sub
Sub DelItemAll(ByVal Genus As String, ByVal InIname As String)
WritePrivateProfileSection Genus, "", InIname
End Sub
Sub DelSec(ByVal Genus As String, ByVal InIname As String)
WritePrivateProfileSection Genus, 0&, InIname
End Sub
'**模 块 名 ModIniFile
'**作 用 INI文件操作(包括,读、写、删除),很方便,对中文支持很好。
'**作 者 石陆
'**制作日期 2007年12月8日9:57:31
'**修 改
'**修改日期
'**石陆软件屋 http://baidu.bzzo.net
'***********************************************************
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'完成 d:\123.ini 内容如下-------写INI
'
'[main]
'Caption = 石陆软件屋
'例句 SaveINI "main", "Caption", "石陆软件屋", "D:\123.ini"
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'd:\123.ini 内容如下-------读取INI
'
'[main]
'Caption = 石陆软件屋
'例句 GetINI("main", "Caption", "'http://baidu.bzzo.net", "D:\123.ini")
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, 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 String, ByVal lpString As Any, ByVal lpFileName As String) As Long
'Const pa As String = "C:\Users\BAIDU-ZCY\Desktop\ccc.ini"
Public Function WriteINI(ByVal Genus As String, ByVal Item As String, ByVal Value As String, ByVal InIname As String) As Long
WriteINI = WritePrivateProfileString(Genus, Item, Value, InIname)
End Function
Public Function ReadINI(ByVal Genus As String, ByVal Item As String, ByVal Default As String, ByVal InIname As String) As String
ReadINI = String$(255, 0)
GetPrivateProfileString Genus, Item, Default, ReadINI, 256, InIname
ReadINI = Replace(ReadINI, Chr(0), "")
End Function
Sub DelItem(ByVal Genus As String, ByVal Item As String, ByVal InIname As String)
WritePrivateProfileString Genus, Item, 0&, InIname
End Sub
Sub DelItemAll(ByVal Genus As String, ByVal InIname As String)
WritePrivateProfileSection Genus, "", InIname
End Sub
Sub DelSec(ByVal Genus As String, ByVal InIname As String)
WritePrivateProfileSection Genus, 0&, InIname
End Sub
以上是模块的写法,可以 写、读、删
下面是类模块 名字为 classIniFile.cls
程序代码:
'***********************************************************
'**类模块名 classIniFile
'**作 用 INI文件操作(包括,读、写、删除),很方便,对中文支持很好。
'**作 者 石陆
'**制作日期 2007年12月8日9:47:44
'**修 改
'**修改日期
'**石陆软件屋 http://baidu.bzzo.net
'***********************************************************
Option Explicit
Private strINI As String
Private Declare Function GetPrivateProfileString Lib "ke
'**类模块名 classIniFile
'**作 用 INI文件操作(包括,读、写、删除),很方便,对中文支持很好。
'**作 者 石陆
'**制作日期 2007年12月8日9:47:44
'**修 改
'**修改日期
'**石陆软件屋 http://baidu.bzzo.net
'***********************************************************
Option Explicit
Private strINI As String
Private Declare Function GetPrivateProfileString Lib "ke