中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-15 00:32
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » write方法能否覆盖原来文本?
楼 主 write方法能否覆盖原来文本? 发表于 2007-05-09 18:21 ·  中国 新疆 乌鲁木齐 电信
高级用户
★★★
Autowalk
积分 845
发帖 375
注册 2007-03-03 01:58
UID 80606
性别 男
状态 离线
如题,不要在文件尾开始写入,要重新开始写怎么做?
2 发表于 2007-05-09 19:55 ·  中国 河北 保定 联通
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
UID 48180
性别 男
状态 离线
CreateTextFile的false
OpenTextFile的2
都可以 (8是操作文件末尾)
3 发表于 2007-05-10 12:49 ·  中国 新疆 乌鲁木齐 电信
高级用户
★★★
Autowalk
积分 845
发帖 375
注册 2007-03-03 01:58
UID 80606
性别 男
状态 离线
set wrt=fso.opentextfile("num.jay",2)
wrt.write num



OpenTextFile的2 还是从文件尾开始写的,不覆盖
4 发表于 2007-05-10 12:55 ·  中国 新疆 乌鲁木齐 电信
高级用户
★★★
Autowalk
积分 845
发帖 375
注册 2007-03-03 01:58
UID 80606
性别 男
状态 离线
我是想存储一个计数器的值,我的方法是把它存放在TXT文件中,然后下次运行前从文本中读取。
高手有什么更好的办法也请指点一下,不用这个方法也行
5 发表于 2007-05-10 13:34 ·  中国 河北 保定 联通
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
UID 48180
性别 男
状态 离线
Originally posted by zhoushijay at 2007-5-10 12:49:
set wrt=fso.opentextfile("num.jay",2)
wrt.write num

OpenTextFile的2 还是从文件尾开始写的,不覆盖



num=5
set wrt=CreateObject("Scripting.FileSystemObject").opentextfile("num.jay",2)
wrt.write num


我不知道在你那里为什么会是追加,我已经试过了,而且符合微软在帮助中的解释,是覆盖。。。。你的代码还是要你仔细分析。
6 发表于 2007-05-10 13:49 ·  中国 河北 保定 联通
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
UID 48180
性别 男
状态 离线
如果可以,发你全部的代码上来,每个细微之处都有可能是出错的地方。
7 发表于 2007-05-10 14:05 ·  中国 新疆 乌鲁木齐 电信
高级用户
★★★
Autowalk
积分 845
发帖 375
注册 2007-03-03 01:58
UID 80606
性别 男
状态 离线
还是昨天那个代码

set fso=createobject("scripting.filesystemobject")
Set ie=WScript.CreateObject("InternetExplorer.Application")
set rde=fso.opentextfile("num.jay",1)
num=rde.readall '在这里读取出计数器的初始值
num=int(num)
do until err<>0
num=num+1 '初始值+1后,也就是检测下一章小说地址是否有效
ie.navigate "http://www.readnovel.com/novel/15763/"&num&".html"
wscript.sleep 10000
set wrt=fso.opentextfile("num.jay",2)
wrt.write num '每次有效后将NUM的值存入NUM.JAY文件,以便下次读取
on error resume next
isnull(ie.document.title)
msgbox(ie.document.title)
loop
msgbox("目前的最后章节为第"&num&"章!")
msgbox(err)
8 发表于 2007-05-10 14:07 ·  中国 新疆 乌鲁木齐 电信
高级用户
★★★
Autowalk
积分 845
发帖 375
注册 2007-03-03 01:58
UID 80606
性别 男
状态 离线
现在的问题是num.jay这个文件里的数字并没有像预想中的那样递加
9 发表于 2007-05-10 14:53 ·  中国 河北 保定 联通
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
UID 48180
性别 男
状态 离线
Originally posted by zhoushijay at 2007-5-10 14:07:
现在的问题是num.jay这个文件里的数字并没有像预想中的那样递加


所以说要把源码拿上来才好分析吗,少了一个.close而已


set fso=createobject("scripting.filesystemobject")
Set ie=WScript.CreateObject("InternetExplorer.Application")
set rde=fso.opentextfile("num.jay",1)
num=rde.readall '在这里读取出计数器的初始值
num=int(num)
do until err<>0
num=num+1 '初始值+1后,也就是检测下一章小说地址是否有效
ie.navigate "http://www.readnovel.com/novel/15763/"&num&".html"
wscript.sleep 10000
set wrt=fso.opentextfile("num.jay",2)
wrt.write num '每次有效后将NUM的值存入NUM.JAY文件,以便下次读取
wrt.close'关闭才行
on error resume next
isnull(ie.document.title)
msgbox(ie.document.title)
loop
msgbox("目前的最后章节为第"&num&"章!")
msgbox(err)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
zhoushijay +8 2007-05-10 15:36
10 发表于 2007-05-10 14:58 ·  中国 河北 保定 联通
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
UID 48180
性别 男
状态 离线
很佩服LZ把方法和技巧应用于实际操作中的创意。
11 发表于 2007-05-10 15:40 ·  中国 新疆 乌鲁木齐 电信
高级用户
★★★
Autowalk
积分 845
发帖 375
注册 2007-03-03 01:58
UID 80606
性别 男
状态 离线
谢谢baomaboy,问题解决了

只是有一处不明白,我还以为这个CLOSE应该加在上一个opentextfile中,原因是上一次文件是只读模式打开的,并没有关闭,
为什么CLOSE是需要加在后一个opentextfile中的?
12 发表于 2007-05-10 16:02 ·  中国 河北 保定 联通
银牌会员
★★★
积分 1,513
发帖 554
注册 2005-12-30 00:50
UID 48180
性别 男
状态 离线
大概试了下代码没仔细分析,我也疏忽了第一个opentextfile,并不是说CLOSE需要加在后一个opentextfile中,作为好的编程习惯第一个也是要关闭的当你的目的num=rde.readall 达到之后,之所以没出错是因为rde和wrt好比是两不相关的人在操作同一个物件,正好一个在操作而另一个只是在看(读)而已。
13 发表于 2007-05-10 16:29 ·  中国 新疆 乌鲁木齐 电信
高级用户
★★★
Autowalk
积分 845
发帖 375
注册 2007-03-03 01:58
UID 80606
性别 男
状态 离线
明白了,如果2个都在操作的话就有可能出现无法访问的错误了吧,
好的习惯,上完厕所记得冲一下 -___-!
论坛跳转: