注册 登录
编程论坛 VB6论坛

编写自己程序的调试日志出现错误

renxiaoyao36 发布于 2015-05-23 21:56, 457 次点击
程序代码:
On Error Resume Next
   Open (App.Path & "\ErrLog\RunTimeLog.log") For Input As #1
  Input #1, Tag4
  Close #1
  If Tag4 <> "" Then
  Tag5 = Tag4 & vbCrLf & Now & " ShutDown After " & Str(Tag1) & " Second"
  Else
  Tag5 = Now & " ShutDown After " & Str(Tag1) & " Second"
  End If
   Open (App.Path & "\ErrLog\RunTimeLog.log") For Output As #1
    Print #1, Tag5
   Close #1

该段代码本意为每次对Log文件增加一行文字
但是结果却是,最终只会有两行文字
怎么回事?
6 回复
#2
Artless2015-05-23 22:28
Tag4 <> ""
#3
renxiaoyao362015-05-24 07:40
回复 2楼 Artless
没看懂,什么意思?要修改么?
#4
风吹过b2015-05-24 08:34
文件模式错了。应该使用 append  追加模式吧。
用 output ,每次打开文件都会把前面的内容删掉。

[ 本帖最后由 风吹过b 于 2015-5-24 19:42 编辑 ]
#5
renxiaoyao362015-05-24 10:29
回复 4楼 风吹过b
如何修改呢……
第一次接触写出文件方面,一窍不通啊
#6
风吹过b2015-05-24 13:48
Tag5 = Now & " ShutDown After " & Str(Tag1) & " Second"   '生成写入的内容
   Open (App.Path & "\ErrLog\RunTimeLog.log") For append As #1    '以追加方式打开文件
    Print #1, Tag5    '在文件尾接着写入内容
   Close #1              '

在手机上写的代码,你自己调试一下。

---------
再仔细看了你原来的代码,错在读内容上面。
input 命令是读变量值,你后面跟着的是 字符串变量,那么就是读到行结尾就不读了。
要么使用二进制打开文件,一次读入。要么使用循环,按行读,读到的内容拼起来。
你的代码只读一次,也就是第一行。
加上最后保存的那行,只会有二行内容。

FSO操作文件时,追加内容就是使用你这种的方法,在 ASP 代码里用的多,但 FSO 有一个命令读所有的内容。
#7
renxiaoyao362015-05-24 16:28
回复 6楼 风吹过b
感谢!尝试成功!

[ 本帖最后由 renxiaoyao36 于 2015-5-24 16:31 编辑 ]
1