51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2094|回复: 9
打印 上一主题 下一主题

[原创] vbs读取文本文件的问题,急

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-6-1 13:36:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我这里有一个文本文件,大概内容和格式如下:
  1. lang=en

  2. ####
  3. a=1

  4. b=2
  5. c=3
复制代码
我想取=号两边的内容,但是文件里有空格行也有其它不相关的行
我用readline似乎无法办到,请大家帮个忙,谢谢了啊
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2018-7-13 14:04
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]测试排长

    2#
    发表于 2011-6-1 18:15:00 | 只看该作者


    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

    复制代码


    要下班了就没有进行测试...........
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2011-6-2 00:19:22 | 只看该作者
    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
    复制代码
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2011-6-2 00:19:39 | 只看该作者
    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
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2011-6-2 00:20:10 | 只看该作者
    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
    复制代码
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2011-6-2 00:21:24 | 只看该作者
    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
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2011-6-2 09:27:57 | 只看该作者
    顶~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2011-6-2 09:35:59 | 只看该作者
    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

    复制代码
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2011-6-2 09:43:42 | 只看该作者
    今天看到了,谢谢大家,非常感谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2011-6-7 13:29:05 | 只看该作者
    学习学习学习
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-20 01:42 , Processed in 0.068382 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表