51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2493|回复: 2
打印 上一主题 下一主题

[原创] 从TXT文件中读取数据,遇到问题,大家进来看下

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-7-2 11:05:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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

我估计问题出在:将数据按回车分成数组这里。。。麻烦大家帮我看下,谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-7-2 12:31:01 | 只看该作者
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可是试试
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-7-2 15:52:28 | 只看该作者
谢谢楼上的!
问题解决了,我用的myfile.readall
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-10-6 18:30 , Processed in 0.082780 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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