中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » write方法能否覆盖原来文本?
作者:
标题: write方法能否覆盖原来文本? 上一主题 | 下一主题
zhoushijay
高级用户

Autowalk


积分 845
发帖 375
注册 2007-3-3
状态 离线
『楼 主』:  write方法能否覆盖原来文本?

如题,不要在文件尾开始写入,要重新开始写怎么做?

2007-5-9 18:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 2 楼』:  

CreateTextFile的false
OpenTextFile的2
都可以 (8是操作文件末尾)



好多菩提树,好多明镜台。本来好多物,好多的尘埃。
2007-5-9 19:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhoushijay
高级用户

Autowalk


积分 845
发帖 375
注册 2007-3-3
状态 离线
『第 3 楼』:  

set wrt=fso.opentextfile("num.jay",2)
   wrt.write num



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

2007-5-10 12:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhoushijay
高级用户

Autowalk


积分 845
发帖 375
注册 2007-3-3
状态 离线
『第 4 楼』:  

我是想存储一个计数器的值,我的方法是把它存放在TXT文件中,然后下次运行前从文本中读取。
高手有什么更好的办法也请指点一下,不用这个方法也行

2007-5-10 12:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 5 楼』:  



  Quote:
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
我不知道在你那里为什么会是追加,我已经试过了,而且符合微软在帮助中的解释,是覆盖。。。。你的代码还是要你仔细分析。



好多菩提树,好多明镜台。本来好多物,好多的尘埃。
2007-5-10 13:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 6 楼』:  

如果可以,发你全部的代码上来,每个细微之处都有可能是出错的地方。



好多菩提树,好多明镜台。本来好多物,好多的尘埃。
2007-5-10 13:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhoushijay
高级用户

Autowalk


积分 845
发帖 375
注册 2007-3-3
状态 离线
『第 7 楼』:  

还是昨天那个代码

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)

2007-5-10 14:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhoushijay
高级用户

Autowalk


积分 845
发帖 375
注册 2007-3-3
状态 离线
『第 8 楼』:  

现在的问题是num.jay这个文件里的数字并没有像预想中的那样递加

2007-5-10 14:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 9 楼』:  



  Quote:
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)


   此帖被 +8 点积分        点击查看详情   
评分人:【 zhoushijay 分数: +8  时间:2007-5-10 15:36




好多菩提树,好多明镜台。本来好多物,好多的尘埃。
2007-5-10 14:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 10 楼』:  

很佩服LZ把方法和技巧应用于实际操作中的创意。



好多菩提树,好多明镜台。本来好多物,好多的尘埃。
2007-5-10 14:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhoushijay
高级用户

Autowalk


积分 845
发帖 375
注册 2007-3-3
状态 离线
『第 11 楼』:  

谢谢baomaboy,问题解决了

只是有一处不明白,我还以为这个CLOSE应该加在上一个opentextfile中,原因是上一次文件是只读模式打开的,并没有关闭,
为什么CLOSE是需要加在后一个opentextfile中的?

2007-5-10 15:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 12 楼』:  

大概试了下代码没仔细分析,我也疏忽了第一个opentextfile,并不是说CLOSE需要加在后一个opentextfile中,作为好的编程习惯第一个也是要关闭的当你的目的num=rde.readall 达到之后,之所以没出错是因为rde和wrt好比是两不相关的人在操作同一个物件,正好一个在操作而另一个只是在看(读)而已。



好多菩提树,好多明镜台。本来好多物,好多的尘埃。
2007-5-10 16:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhoushijay
高级用户

Autowalk


积分 845
发帖 375
注册 2007-3-3
状态 离线
『第 13 楼』:  

明白了,如果2个都在操作的话就有可能出现无法访问的错误了吧,
好的习惯,上完厕所记得冲一下  -___-!

2007-5-10 16:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: