我希望更新文件的内容,但没办法标记结束。
例如:
    '第一次运行时希望文件内容为“123456789”,故运行以下程序:
    Open "d:\1.dat" For Binary As #1
    Put #1, , "123456789"
    Close #1
    '打开文件后无误    '第二次运行时希望文件内容为“56789”,运行以下程序:
    Open "d:\1.dat" For Binary As #1
    Put #1, , "56789"
    Close #1
    '打开文件显示“567896789”,显然错误。应该添加文件结束符,但不知如何添加,望各位指导!

解决方案 »

  1.   

    请使用For Append追加数据
    如果必须用binary数据,请使用seek移动文件指针到文件末尾
    然后继续写入数据
      

  2.   

    我是希望将文件内容由“123456789”替换为“56789”,不是追加,而且必须用Binary方式。
      

  3.   

    如果不保留先前文件的所有内容,可以在第二次写入之前kill先前的文件,重新写一个新文件.If Dir("d:\1.dat") <> "" Then
      Kill "d:\1.dat"
    End If    Open "d:\1.dat" For Binary As #1
        Put #1, , "56789"
        Close #1
    这是得到的结果:"56789"
      

  4.   

    文件结束:
    Open "d:\1.dat" For Binary As #1
        Put #1, , "56789" & chr(26)
       Close #1
      

  5.   

    不行啊,chr(26)好像不行啊
    请再指导,多谢
      

  6.   

    chr(26)只能在打开方式是output时用,binary方式时无用
      

  7.   

    可以增加如下函数:
    Do While Not EOF(1)
        .....
    Loop
    来进行文件进度的控制!
      

  8.   

    如下程序:
    If Dir("d:\1.dat") <> "" Then
      Kill "d:\1.dat"
    End If
        Open "d:\1.dat" For Binary As #1
        Put #1, , "56789"
        Close #1
    也可以实现!
      

  9.   

    换换思路:
    将前2字节定义为有效数据长度。    '第一次运行时希望文件内容为“123456789”,故运行以下程序:
        Open "d:\1.dat" For Binary As #1
        Put #1, , "09123456789"
        Close #1    '第二次运行时希望文件内容为“56789”,运行以下程序:
        Open "d:\1.dat" For Binary As #1
        Put #1, , "0556789"
        Close #1二进制文件不可能有文件结束符,0-255都可能是有效数据。
    如果你的文件中都是1234567890这几个字符,可以任意定义以外的字符作为自定义结束符。
      

  10.   


    Do While Not EOF(1)   '含义为:只要未到(1)文件未尾,就执行如下操作.
        .....
    Loop
    另外:对于如下的操作方法:
         Open "d:\1.dat" For Binary As #1
        Put #1, , "09123456789"
        Close #1
         
         Open "d:\1.dat" For Binary As #1
        Put #1, , "0556789"
        Close #1
    此法更妙!
      

  11.   

    这怪MicroSoft把VB文件操作语句设定得太弱先以OutPut方式打开
        Open "d:\1.dat" For OutPut As #1
        Close #1
        Open "d:\1.dat" For Binary As #1
        Put #1, , "56789"
        Close #1