haha_s 发表于 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 编辑 ]

haha_s 发表于 2008-11-5 08:57:51

请问哪位大侠帮帮忙啊~~

lingxin5013 发表于 2008-11-5 10:57:48

可以写个循环 使用atendofline 你可以看下帮助文档,希望对你有帮助.

haha_s 发表于 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 编辑 ]

haha_s 发表于 2008-11-17 10:35:19

终极解决办法

其实4楼的那个办法后来也出现过同样的问题,也就是说换了语句仍然没有解决问题
最后在函数末端写了f.close语句才真正解决了问题 :)
个人理解是在最初写文件时一直没有关闭文件指针,所以在后面读取时也必然是从最后一个位置开始读的,所以只要关闭一次就好了,呵呵
页: [1]
查看完整版本: 请教大侠关于文件指针如何设置到文件头的位置?