配置文件的读和写操作是许多软件都必须得操作,Windows API为我们提供了两个函数进行配置文件的读和写操作,这大大方便了我们的软件开发。 首先来看看配置文件的格式,一个格式正确配置文件应该是和下面类似的[节点1]子键1=键值子键2=键值子键3=键值。。。。。。[节点2]子键1=键值子键2=键值。。。。。。[节点3]。。。。。。 节点可以有任意个,节点名也可以随意取,关键是“[]”不能省,子键也可以有任意个,注意等号右边直接写键值,如果是字符串也不要加双引号,默认的就是字符串。加了反倒会在字符串上多处双引号。 接着我们来看看怎么进行读写,Windows API 为我们提供的这两个函数是:读函数GetPrivateProfileString写函数WritePrivateProfileString他们的声明如下: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 LongPublic 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我们先来介绍下这两个函数,lpApplicationName 指的是节点名,注意这是一个String 类型,所以调用的时候我们必须加双引号比如“节点1”;lpKeyName是子键名,调用的时候也要加双引号;lpDefault 是默认值,如果填的话接受区内将是这个值;lpReturnedString 是接受区,函数读取到的键值将放在这里,这是一个事先已经订好大小的缓冲区;nSize接受区的大小;lpFileName配置文件的路径;lpString要写入配置文件的键值,请使用字符串类型。 下边我们来实际写一下代码,比如说我们要做一个客户端程序与远程服务器连接,那么客户端首先需要知道远程服务器的IP地址和通信端口,所以我们可能就建立这样一个配置文件,如下[REMOTESERVER]ServerIP=192.168.12.23ServerPort=9050把它命名为config.ini并放在项目目录下。在连接服务器之前我们就可以使用GetPrivateProfileString来从配置文件读取服务器信息,使用方法如下Dim ip As StringDim port As String ip = String(18, " ")'ip地址接受缓冲区,定义为18个空字符 port=String(6," ")'端口接受缓冲区,定义为6个空字符 Dim ret As Long ret = GetPrivateProfileString("REMOTESERVER", "ServerIP", "", ip, 18, App.Path & "\config.ini") ip = Left(ip , ret)'去掉多余的空格 ret = GetPrivateProfileString("REMOTESERVER", "ServerPort", "", port, 6, App.Path & "\config.ini") port= Left(port, ret)'去掉多余的空格这样,ip和port中就存有服务器的ip和端口了。当服务器的ip和端口发生改变时我们必须把新的ip和端口写入配置文件,以便下次能正确地连上服务器,写配置文件用WritePrivateProfileString函数,看下面的代码Dim newip as StringDim newport as Stringnewip="192.168.12.20"newport="8000"Dim ret As Long ret = WritePrivateProfileString("REMOTESERVER", "ServerIP", newip, App.Path & "\config.ini") ret = WritePrivateProfileString("REMOTESERVER", "ServerPort", newport, App.Path & "\config.ini")这样就完成了配置文件的写入。欢迎大家留言讨论。 <完>

评论