itRef.cn技术参考网站

当前位置: 主页 > windows > vb >

vb读写配置文件的方法|.ini法与.config法

时间:2012-03-09 15:21来源:未知 作者:wiwi 点击:
vb读写配置文件,有以下几种方法: .ini文件法,这种是老的vb6里使用的方法 .config方法,这个是新的.net里的方法 .ini配置法实例: 声明INI配置文件读写API函数 Private Declare Function GetPrivateProfileString Lib kernel32 Alias GetPrivateProfileStri
vb读写配置文件,有以下几种方法:
  1. .ini文件法,这种是老的vb6里使用的方法
  2. .config方法,这个是新的.net里的方法

.ini配置法实例:

  1. '声明INI配置文件读写API函数 
  2.    Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As StringByVal lpKeyName As StringByVal lpDefault As StringByVal lpReturnedString As StringByVal nSize As Int32, ByVal lpFileName As StringAs Int32 
  3.    Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As StringByVal lpKeyName As StringByVal lpString As StringByVal lpFileName As StringAs Int32 
  4.    '定义读取配置文件函数 
  5.    Public Function GetINI(ByVal Section As StringByVal AppName As StringByVal lpDefault As StringByVal FileName As StringAs String 
  6.        Dim Str As String = LSet(Str, 256) 
  7.        GetPrivateProfileString(Section, AppName, lpDefault, Str, Len(Str), FileName) 
  8.        Return Microsoft.VisualBasic.Left(Str, InStr(Str, Chr(0)) - 1) 
  9.    End Function 
  10.    '定义写入配置文件函数 
  11.    Public Function WriteINI(ByVal Section As StringByVal AppName As StringByVal lpDefault As StringByVal FileName As StringAs Long 
  12.        WriteINI = WritePrivateProfileString(Section, AppName, lpDefault, FileName) 
  13.    End Function 
  14.    Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load 
  15.        Dim path As String 
  16.        path = Application.StartupPath + "\server.ini" 
  17.        TextBox1.Text = GetINI("Server""IP""", path) 
  18.        TextBox2.Text = GetINI("Server""port""", path) 
  19.    End Sub 
  20.  
  21.    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click 
  22.        Try 
  23.            Dim path As String 
  24.            path = Application.StartupPath + "\server.ini" 
  25.            WriteINI("Server""IP", TextBox1.Text, path) 
  26.            WriteINI("Server""port", TextBox2.Text, path) 
  27.            MsgBox("配置设置已经成功!!!!"
  28.            Me.Close() 
  29.        Catch ex As Exception 
  30.            MsgBox("错误!!!!"
  31.        End Try 
  32.  
  33.    End Sub 

.config配置法:

app.config配置文件中,配置信息格式如下:
 

  1. <add key="coal" value="一二三" /> 
  2. <add key="inWellTime" value="5" /> 
vb.net提供了可以直接访问配置文件中配置项的方法,只需要知道key名称就可以获取到对应key名称的value值。
  1. Dim ConString As String = System.Configuration.ConfigurationSettings.AppSettings("coal"

示例,获取名称ConString变量是配置文件中coal对应的值"一二三"

  1. Imports System.Configuration 
  2. Imports System.Xml 
  3. Imports System.Data 
  4.  
  5.  
  6.  
  7. ''' ConfigClass 的摘要说明。 
  8. '''  
  9. Public Class ConfigClass 
  10.     Public strFileName As String 
  11.     Public configName As String 
  12.     Public configValue As String 
  13.             ' 
  14.             ' TODO: 在此处添加构造函数逻辑 
  15.             ' 
  16.     Public Sub New() 
  17.     End Sub 
  18.  
  19.     Public Function ReadConfig(configKey As StringAs String 
  20.         configValue = "" 
  21.         configValue = ConfigurationSettings.AppSettings(configKey) 
  22.         Return configValue 
  23.     End Function 
  24.  
  25.     '得到程序的config文件的名称以及其所在的全路径 
  26.     Public Sub SetConfigName(strConfigName As String
  27.         configName = strConfigName 
  28.         '获得配置文件的全路径 
  29.         GetFullPath() 
  30.     End Sub 
  31.  
  32.     Public Sub GetFullPath() 
  33.         '获得配置文件的全路径 
  34.         strFileName = AppDomain.CurrentDomain.BaseDirectory.ToString() & configName 
  35.     End Sub 
  36.  
  37.     Public Sub SaveConfig(configKey As String, configValue As String
  38.         Dim doc As New XmlDocument() 
  39.         doc.Load(strFileName) 
  40.         '找出名称为“add”的所有元素 
  41.         Dim nodes As XmlNodeList = doc.GetElementsByTagName("add"
  42.         For i As Integer = 0 To nodes.Count - 1 
  43.             '获得将当前元素的key属性 
  44.             Dim att As XmlAttribute = nodes(i).Attributes("key"
  45.             '根据元素的第一个属性来判断当前的元素是不是目标元素 
  46.             If att.Value = "" & configKey & "" Then 
  47.                 '对目标元素中的第二个属性赋值 
  48.                 att = nodes(i).Attributes("value"
  49.                 att.Value = configValue 
  50.                 Exit For 
  51.             End If 
  52.         Next 
  53.         '保存上面的修改 
  54.         doc.Save(strFileName) 
  55.     End Sub 
  56. End Class 
应用例子
读取:
  1. Dim config As New ConfigClass() 
  2. Dim coal As String = config.ReadConfig("coal"
  3. Me.tbOpenFile.Text = config.ReadConfig("inWellTime"
写入:
  1. Dim config As New ConfigClass() 
  2. '得到程序的config名:DataOperate.exe.config; 
  3. config.SetConfigName("DataOperate.exe.config"
  4. config.SaveConfig("coal""三二一"
  5. config.SaveConfig("inWellTime""10"
注意:当修改完App.config。文件后,程序中用到的App.config文件的“key”对应的“value”值需要重读,否则修改后修改并不能立即起作用,而要等下次程序重启后才可以读取到修改后的App.config属性值。 
(责任编辑:wiwi) 转载请注明 来源于itRef.cn技术参考网站:
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容