VBS获取Ini配置文件一个节点下的所有字段的值

上一篇 / 下一篇  2009-03-13 21:12:54 / 个人分类:自动化测试

'/****************************************************/
'* 功能:使用VBS读取ini文件中指定节点下的所有值
'* 输入参数:inipath :ini文件的地址
'*           initypes :ini文件中包含在"["和"]"之间的值
'* 返回值:找到的字段的值组成的array
'* 编写人:  chenyb
'* 编写日期:2008-12-26
'* 其他说明:以下只是方法,具体问题具体修改
'/****************************************************/
Function vbsGetIniFields(inipath,initypes)
 Const ForReading = 1 '定义常量
 'FSO对象,文本对象,下一行数据变量,字串搜索位置
 Dim objFSO,objTextFile,strNextLine,intLineFinder
 Dim state  '指定是否在匹配的initypes中是否找到字段
 Dim tmp    '临时存储字符串
 Dim typeList '分割字符串后的字串list
 Dim rsStr    '函数返回值
 Set bjFSO = CreateObject("Scripting.FileSystemObject") '建立FSO对象
 Set bjTextFile = objFSO.OpenTextFile(inipath, ForReading)'打开文档
 Do Until objTextFile.AtEndOfStream   '遍历每一行
  strNextLine = objTextFile.ReadLine '读取一行数据
  '如果已经找到了initypes,又找到了"[]",那说明字段未找到
  If InStr(strNextLine, "[") <> 0 And InStr(strNextLine, "]") <> 0 Then
      If state = 1 Then
          Exit DO
      End if
      tmp = Trim(Mid(Trim(strNextLine),InStr(strNextLine, "[")+1,Len(initypes)))    
      if tmp = Trim(initypes) Then '找到了initypes  
          state = 1
          strNextLine = objTextFile.ReadLine
      End if
  End if
  
  If state = 1 Then  
   intLineFinder = InStr(strNextLine,"=") '搜索字符串中的"="
   If intLineFinder <> 0 Then '如果找到"="
       typeList = Split(strNextLine,"=") '分割字符串
       rsStr =rsStr & ",""" & typeList(1) & """" '赋值 
   End If
  End if
 Loop 
 objTextFile.Close '关闭文档
 Execute "vbsGetIniFields = Array(" & right(rsStr,Len(rsStr) - 1) & ")" '返回值
End Function
'***********使用示例******************************
Dim t
t = vbsGetIniFields("公诉.ini","包括VBS")
MsgBox UBound(t)
MsgBox t(0)
MsgBox t(1)
'*************************************************

TAG: QTP vbs qtp ini

 

评分:0

我来说两句

chenyb85

chenyb85

大海无量。。。 QQ:20710378

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 18937
  • 日志数: 20
  • 建立时间: 2009-03-11
  • 更新时间: 2011-08-21

RSS订阅

Open Toolbar