51Testing软件测试论坛

标题: 在QTP中如何从txt文件读取数据 [打印本页]

作者: love3380    时间: 2007-7-27 17:58
标题: 在QTP中如何从txt文件读取数据
我网上看到一段代码,我稍微改了一下,内容如下:


Dim fso, myfile,userName,Password
Set fso=CreateObject("scrīpting.FileSystemObject")
Set myfile = fso.openTextFile("C:\login.txt",1,false)
tmp = split(myfile.readline,",")
userName = tmp(0)
msgbox(userName)
Password = tmp(1)
myfile.close

但是总提示“ActiveX 部件不能创建对象: 'scrīpting.FileSystemObject'”,不知道是怎么回事!请各位帮我看看!
作者: sidneylover    时间: 2007-7-27 18:00
同志,你这是网上搜了再接拷去运行的吧
'scrīpting前面那个i
作者: jiangdq    时间: 2007-7-27 18:23
开始-》运行
regsvr32 jscript.dll
regsvr32 vbscript.dll
作者: ybbiagu    时间: 2007-7-27 19:09
Dim fso, myfile,userName,Password
Set fso=CreateObject("scripting.FileSystemObject")   
Set myfile = fso.openTextFile("C:\login.txt",1,false)
tmp = split(myfile.readline,",")
userName = tmp(0)
msgbox(userName)
Password = tmp(1)
myfile.close
'scripting 写错了
作者: love3380    时间: 2007-7-28 09:26
对对对,就是那个i写错了!太感谢你们了!sdlkfj2
作者: love3380    时间: 2007-7-28 09:40
如何读取第二行的数据呢?
作者: rojer521    时间: 2007-7-28 11:47
标题: 依次读取每一行
do until (myfile.AtEndofStream)
    tmp = myfile.readline
    ...
loop
作者: 风过无息    时间: 2007-7-28 12:01
用SkipLine可以实现.

  1. Dim fso, myfile,msg
  2. Set fso=CreateObject("scripting.FileSystemObject")   
  3. Set myfile = fso.openTextFile("C:\login.txt",1,false)
  4. myfile.SkipLine
  5. msg=myfile.ReadLine
  6. myfile.close
复制代码

作者: ppent    时间: 2007-7-28 15:17
这里很多qtp高手阿
作者: gzj_06    时间: 2007-7-31 14:47
标题: 回复 #6 love3380 的帖子
原帖由 love3380 于 2007-7-28 09:40 发表
如何读取第二行的数据呢?
ReadLine方法就可以实现
  1. msg1=myfile.ReadLine   '读取第一行
  2. msg2=myfile.ReadLine           '读取第二行
  3. msg3=myfile.ReadLine           '读取第三行
  4. msgbox msg1
  5. msgbox msg2
  6. msgbox msg3
复制代码

作者: gzj_06    时间: 2007-7-31 14:56
原帖由 风过无息 于 2007-7-28 12:01 发表
用SkipLine可以实现.
SkipLine方法:跳过下一行
  1. Dim fso, myfile,msg
  2. Set fso=CreateObject("scripting.FileSystemObject")   
  3. Set myfile = fso.openTextFile("C:\login.txt",1,false)
  4. myfile.SkipLine                    '跳过第一行  
  5. msg=myfile.ReadLine           '读取的是第二行
  6. myfile.close
复制代码

作者: zhyb_2008    时间: 2007-7-31 17:43
sdlkfj2 支持一下
作者: 风过无息    时间: 2007-8-1 13:17
其实可以用个循环+SkipLine来读取特定行的数据,呵呵.
作者: MarsNoNo    时间: 2007-8-1 17:15
while not myfile.atendofstream
    mychar = myfile.readline
    msgbox mychar
wend

可以这样试试。用循环+readline读取txt文件的内容。
作者: flyskypei    时间: 2007-8-1 18:24
原帖由 风过无息 于 2007-8-1 13:17 发表
其实可以用个循环+SkipLine来读取特定行的数据,呵呵.



怎么来读取特定行的数据?
作者: 风过无息    时间: 2007-8-1 19:36
  1. Function read_line(rowcount)
  2. Set fso=CreateObject("scripting.FileSystemObject")   
  3. Set myfile = fso.openTextFile("C:\qtplog.txt",1,false)

  4. For i=1 to rowcount-1
  5. myfile.SkipLine
  6. Next

  7. read_line=myfile.ReadLine

  8. myfile.close
  9. End Function
复制代码


以上这个方法在处理错误输入的时候还不完善,有兴趣的朋友可以完善它.

[ 本帖最后由 风过无息 于 2007-8-1 19:38 编辑 ]
作者: xihong2004    时间: 2007-8-1 23:23
本贴不错
作者: xihong2004    时间: 2007-8-1 23:47
一定要顶
作者: suifengpiao    时间: 2007-8-2 09:25
原帖由 rojer521 于 2007-7-28 11:47 发表
do until (myfile.AtEndofStream)
    tmp = myfile.readline
    ...
loop

学习了
作者: james.zhong    时间: 2007-8-2 09:36
哈哈~~~学到点经验~~谢谢!!
作者: v_v    时间: 2007-8-6 01:10
Call read_line(3)
Function read_line(rowcount)
Set fso=CreateObject("scripting.FileSystemObject")   
Set myfile = fso.openTextFile("D:\temp\test.txt",1,false)
For i=0 to rowcount-1
read_line=myfile.ReadLine
msgbox read_line

Next
myfile.close
End Function
可以实现循环读取各行的值
作者: binflying    时间: 2007-8-7 19:28
没看明白    还没到QTP   倒啊`~~
作者: coletan    时间: 2007-8-21 10:07
有没什么办法是可以读到制定哪一行,比如说我开头的是IE.EXE,但是行数会不断的变化
作者: yuandjing    时间: 2007-8-22 14:59
耶,这样就强壮了
Function read_line(pathway, rowcount)
        Dim fso,myfile,i,flag
        flag = 1
        Set fso=CreateObject("scripting.FileSystemObject")
        If fso.FileExists(pathway) then
                Set myfile = fso.openTextFile(pathway,1,false)
        Else
                flag = 0
        End If
       
        For i=1 to rowcount-1
                If Not myfile.AtEndOfLine Then
                        myfile.SkipLine
                End If
        Next
       
        If flag = 1 then
                If Not myfile.AtEndOfLine Then
                        read_line = myfile.ReadLine
                Else
                        read_line = "文本越界"
                End If
                myfile.close
        Else
                read_line = "文件不存在"
        End If
End Function




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