51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3504|回复: 4
打印 上一主题 下一主题

[原创] 请教大侠关于文件指针如何设置到文件头的位置?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-11-4 16:57:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在网上搜了一些办法,貌似VB是可以通过seek函数实现的
但是VBS没有这个函数,不知道还有没有其他办法可以实现?
谢谢各位大侠啦~~~

再说下我的具体问题:
我想读取文件中的内容(绝对是有内容的),但是运行后在Response.write f.ReadAll行提示【输入超出了文件尾】
就是文件指针总在文件的尾部,所以打算将文件指针手动设置到头部再读取。
我的代码如下:
Function ReadAllTextFile
   Const ForReading = 1
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile("D:\Program_Files\Mercury Interactive\QuickTest Professional\Tests\Test1_close\Services.txt", ForReading)
ReadAllTextFile =   f.ReadAll
End Function

[ 本帖最后由 haha_s 于 2008-11-5 08:57 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-11-5 08:57:51 | 只看该作者
请问哪位大侠帮帮忙啊~~
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-11-5 10:57:48 | 只看该作者
可以写个循环 使用atendofline 你可以看下帮助文档,希望对你有帮助.
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-11-5 11:21:36 | 只看该作者
问题貌似解决了
只要将Set f = fso.OpenTextFile("D:\Program_Files\Mercury Interactive\QuickTest Professional\Tests\Test1_close\Services.txt", ForReading)改成
Set f = fso.getfile().openastextstream就行了
至于为啥,还是不太明白。


回LS的好心人:
atendofstream只能判断是否在文件末尾吧,怎么才能让指针移动到文件头?
我看了Help里面的例子,也只是说如果指针不在文件尾,则继续读出后续内容,没有解决我的问题

[ 本帖最后由 haha_s 于 2008-11-5 11:23 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2008-11-17 10:35:19 | 只看该作者

终极解决办法

其实4楼的那个办法后来也出现过同样的问题,也就是说换了语句仍然没有解决问题
最后在函数末端写了f.close语句才真正解决了问题 :)
个人理解是在最初写文件时一直没有关闭文件指针,所以在后面读取时也必然是从最后一个位置开始读的,所以只要关闭一次就好了,呵呵
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-13 14:37 , Processed in 0.069518 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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