51Testing软件测试论坛

标题: 从TXT文件中读取数据,遇到问题,大家进来看下 [打印本页]

作者: simpleqq    时间: 2008-7-2 11:05
标题: 从TXT文件中读取数据,遇到问题,大家进来看下
Dim fso, myfile,midstr,tmp,UserEmail
Set fso=CreateObject("scripting.FileSystemObject")   
Set myfile = fso.openTextFile("E:\test.txt",1,false)    '文本文件存放目录
midstr = split(myfile.readline,vbCr)     
tmp = split(midstr(0),",")            
UserEmail = tmp(1)
-------这段代码,第四行中,在将文本文件的数据按照回车分成数组后,只能读到数组的第一个元素,如果要取出后面的元素,都会提示”下标越界“

E:\test.txt的内容如下:
首页,123@yahoo.com.cn,300
搜索,456@yahoo.com.cn,1000
分类,789@yahoo.com.cn,500
查询,12345@yahoo.com.cn,800

我估计问题出在:将数据按回车分成数组这里。。。麻烦大家帮我看下,谢谢!
作者: xiaoyaoke    时间: 2008-7-2 12:31
midstr = split(myfile.readline,vbCr)     ‘问题出在了这句,此时的myfile.readline只读入了文件中的第一行,也就是说,split(myfile.readline.vbCr)这句话只是对文件中的第一行内容以vbCr为标识符进行分割,当然最终midstr中储存的元素个数只有一个,所以下面midstr(0)时是可用的,而midstr(1)时就会发生数组越界了
以上为个人理解
调通后代码为:
Const ForReading = 1
Set FSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = FSO.OpenTextFile("e:\test.txt", ForReading)
strText = objTextFile.ReadAll
objTextFile.Close
midstr = Split(strText, vbCrLf)
tmp = split(midstr(2),",")            
msgbox tmp(1)
LZ可是试试
作者: simpleqq    时间: 2008-7-2 15:52
谢谢楼上的!
问题解决了,我用的myfile.readall




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