51Testing软件测试论坛

标题: vbs读取文本文件的问题,急 [打印本页]

作者: wsx63    时间: 2011-6-1 13:36
标题: vbs读取文本文件的问题,急
我这里有一个文本文件,大概内容和格式如下:
  1. lang=en

  2. ####
  3. a=1

  4. b=2
  5. c=3
复制代码
我想取=号两边的内容,但是文件里有空格行也有其它不相关的行
我用readline似乎无法办到,请大家帮个忙,谢谢了啊
作者: 17800455    时间: 2011-6-1 18:15


  1. '*************************Rfile()**************************
  2. ' 功能概述:读文件内容
  3. ' 传入参数:1>FPath文件路径
  4. '                   2>intVal值为0取等号左边,1取等号右边
  5. ' 返 回 值:返回数组
  6. ' 调用举例:1>tmpAry = Rfile("c:\test.txt",0)
  7. '                   2>tmpAry = Rfile("c:\test.txt",1)
  8. '***********************************************************
  9. Public Function Rfile(FPath,intVal)

  10.         Set fso = CreateObject("Scripting.FileSystemObject")
  11.         
  12.         If fso.FileExists(FPath) Then

  13.                 Set fopen = fso.OpenTextFile(Fpath,1)
  14.         
  15.                 While Not fopen.AtEndOfStream
  16.                
  17.                         RC = fopen.ReadLine
  18.                         
  19.                         If Left(RC,1) <> "" Then
  20.                         
  21.                                 tmparry = Split(RC,"=",-1,1)
  22.                         
  23.                                 ReDim Preserve tmpAry1(i)
  24.                                 
  25.                                 tmpAry1(i) = tmparry(CInt(intVal))
  26.                                 
  27.                                 i = i + 1
  28.                         
  29.                         End if
  30.                
  31.                 Wend
  32.                
  33.                 fopen.Close
  34.                
  35.         End If
  36.         
  37.         Rfile = tmpAry1

  38.         Set fso = nothing


  39. End Function

复制代码


要下班了就没有进行测试...........
作者: gezhirong    时间: 2011-6-2 00:19
  1. Function TxtReadLines(txtPath,delimiter)
  2. Dim objDictionary,objFso,objTxtFile
  3. Dim strReadLine,splitReadLine
  4. Dim lineCount
  5. Set objDictionary=CreateObject("Scripting.Dictionary")
  6. Set objFso=CreateObject("Scripting.FileSystemObject")
  7. Set objTxtFile=objFso.OpenTextFile(txtPath,1,true)
  8. Do while not(objTxtFile.AtEndOfStream)
  9. strReadLine=objTxtFile.ReadLine
  10. objTxtFile.SkipLine
  11. If instr(strReadLine,delimiter)>0 Then
  12. lineCount=lineCount+1
  13. splitReadLine=split(strReadLine,delimiter)
  14. objDictionary.Add "left"&cstr(lineCount),trim(splitReadLine(0))
  15. objDictionary.Add "right"&cstr(lineCount),trim(splitReadLine(1))
  16. End If
  17. loop
  18. Set objTxtFile=nothing
  19. Set objFso=nothing
  20. Set TxtReadLines=objDictionary
  21. Set objDictionary=nothing
  22. End Function
  23. '传递文件的路径和分隔符,比如你说的等号
  24. Set txtDic=TxtReadLines("d:\text.txt","=")
  25. For i=1 to txtDic.count/2
  26. '等号左边的值
  27. msgbox txtDic.Item("left"&cstr(i))
  28. '等号右边的值
  29. msgbox txtDic.Item("right"&cstr(i))
  30. Next
复制代码

作者: gezhirong    时间: 2011-6-2 00:19
Function TxtReadLines(txtPath,delimiter)
        Dim objDictionary,objFso,objTxtFile
        Dim strReadLine,splitReadLine
        Dim lineCount
        Set objDictionary=CreateObject("Scripting.Dictionary")
        Set objFso=CreateObject("Scripting.FileSystemObject")
        Set objTxtFile=objFso.OpenTextFile(txtPath,1,true)
        Do while not(objTxtFile.AtEndOfStream)
                strReadLine=objTxtFile.ReadLine
                objTxtFile.SkipLine
                If instr(strReadLine,delimiter)>0 Then
                        lineCount=lineCount+1
                        splitReadLine=split(strReadLine,delimiter)
                        objDictionary.Add "left"&cstr(lineCount),trim(splitReadLine(0))
                        objDictionary.Add "right"&cstr(lineCount),trim(splitReadLine(1))
                End If
        loop
        Set objTxtFile=nothing
        Set objFso=nothing
        Set TxtReadLines=objDictionary
        Set objDictionary=nothing
End Function
'传递文件的路径和分隔符,比如你说的等号
Set txtDic=TxtReadLines("d:\text.txt","=")
For i=1 to txtDic.count/2
'等号左边的值
msgbox txtDic.Item("left"&cstr(i))
'等号右边的值
msgbox txtDic.Item("right"&cstr(i))
Next
作者: gezhirong    时间: 2011-6-2 00:20
  1. Function TxtReadLines(txtPath,delimiter)
  2. Dim objDictionary,objFso,objTxtFile
  3. Dim strReadLine,splitReadLine
  4. Dim lineCount
  5. Set objDictionary=CreateObject("Scripting.Dictionary")
  6. Set objFso=CreateObject("Scripting.FileSystemObject")
  7. Set objTxtFile=objFso.OpenTextFile(txtPath,1,true)
  8. Do while not(objTxtFile.AtEndOfStream)
  9. strReadLine=objTxtFile.ReadLine
  10. objTxtFile.SkipLine
  11. If instr(strReadLine,delimiter)>0 Then
  12. lineCount=lineCount+1
  13. splitReadLine=split(strReadLine,delimiter)
  14. objDictionary.Add "left"&cstr(lineCount),trim(splitReadLine(0))
  15. objDictionary.Add "right"&cstr(lineCount),trim(splitReadLine(1))
  16. End If
  17. loop
  18. Set objTxtFile=nothing
  19. Set objFso=nothing
  20. Set TxtReadLines=objDictionary
  21. Set objDictionary=nothing
  22. End Function
  23. '传递文件的路径和分隔符,比如你说的等号
  24. Set txtDic=TxtReadLines("d:\text.txt","=")
  25. For i=1 to txtDic.count/2
  26. '等号左边的值
  27. msgbox txtDic.Item("left"&cstr(i))
  28. '等号右边的值
  29. msgbox txtDic.Item("right"&cstr(i))
  30. Next
复制代码

作者: gezhirong    时间: 2011-6-2 00:21
Function TxtReadLines(txtPath,delimiter)
        Dim objDictionary,objFso,objTxtFile
        Dim strReadLine,splitReadLine
        Dim lineCount
        Set objDictionary=CreateObject("Scripting.Dictionary")
        Set objFso=CreateObject("Scripting.FileSystemObject")
        Set objTxtFile=objFso.OpenTextFile(txtPath,1,true)
        Do while not(objTxtFile.AtEndOfStream)
                strReadLine=objTxtFile.ReadLine
                objTxtFile.SkipLine
                If instr(strReadLine,delimiter)>0 Then
                        lineCount=lineCount+1
                        splitReadLine=split(strReadLine,delimiter)
                        objDictionary.Add "left"&cstr(lineCount),trim(splitReadLine(0))
                        objDictionary.Add "right"&cstr(lineCount),trim(splitReadLine(1))
                End If
        loop
        Set objTxtFile=nothing
        Set objFso=nothing
        Set TxtReadLines=objDictionary
        Set objDictionary=nothing
End Function
'传递文件的路径和分隔符,比如你说的等号
Set txtDic=TxtReadLines("d:\text.txt","=")
For i=1 to txtDic.count/2
'等号左边的值
msgbox txtDic.Item("left"&cstr(i))
'等号右边的值
msgbox txtDic.Item("right"&cstr(i))
Next
作者: 43528782    时间: 2011-6-2 09:27
顶~
作者: gezhirong    时间: 2011-6-2 09:35
  1. Function TxtReadLines(txtPath,delimiter)
  2. Dim objDictionary,objFso,objTxtFile
  3. Dim strReadLine,splitReadLine
  4. Dim lineCount
  5. Set objDictionary=CreateObject("Scripting.Dictionary")
  6. Set objFso=CreateObject("Scripting.FileSystemObject")
  7. Set objTxtFile=objFso.OpenTextFile(txtPath,1,true)
  8. Do while not(objTxtFile.AtEndOfStream)
  9. strReadLine=objTxtFile.ReadLine

  10. If instr(strReadLine,delimiter)>0 Then
  11. lineCount=lineCount+1
  12. splitReadLine=split(strReadLine,delimiter)
  13. objDictionary.Add "left"&cstr(lineCount),trim(splitReadLine(0))
  14. objDictionary.Add "right"&cstr(lineCount),trim(splitReadLine(1))
  15. End If
  16. loop
  17. Set objTxtFile=nothing
  18. Set objFso=nothing
  19. Set TxtReadLines=objDictionary
  20. Set objDictionary=nothing
  21. End Function
  22. '传递文件的路径和分隔符,比如你说的等号
  23. Set txtDic=TxtReadLines("d:\text.txt","=")
  24. For i=1 to txtDic.count/2
  25. '等号左边的值
  26. msgbox txtDic.Item("left"&cstr(i))
  27. '等号右边的值
  28. msgbox txtDic.Item("right"&cstr(i))
  29. Next

复制代码

作者: wsx63    时间: 2011-6-2 09:43
今天看到了,谢谢大家,非常感谢
作者: wendy.wang    时间: 2011-6-7 13:29
学习学习学习




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2