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