各位:
    我输出txt文件的代码如下:
    
On Error GoTo Err3
  FileNumber = FreeFile                          '打开文件并追写新数据
  Open strOuttmpFile For Output As #FileNumber     
     Print #FileNumber, strDateTime  
     Print #FileNumber, Form1.List1.Text
  Close #FileNumber但这样只是建立新文件,原数据就没了!
我的目的: 打开(或建立)文件并追写新数据。
         如果strOuttmpFile 不存在,则新建立;存在,则追写新数据到文件尾!我看到 MSDN 上的 Open 语句 的语法格式如下:      Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength]请问,追写新数据到文件尾的代码如何写?谢谢!

解决方案 »

  1.   

    不是有个For Append吗,试一下!
      

  2.   

    谢谢 aljcn !
    我的代码通过了
    On Error GoTo Err2
      FileNumber = FreeFile                          '打开文件并追写新数据到文件尾
      Open strAllDataFile For Append As #FileNumber
         Print #FileNumber, strDateTime
         Print #FileNumber, Form1.List1.Text
         Print #FileNumber,
      Close #FileNumber借此再请教一个问题,用一个open 语句能否同时读写 txt 文件?
    比如我每次要把 Form1.List1.Text 的内容写入到 第 3 行处,即更新到文件前部,但不是最前,因为 第 1 ,2行为参数,保持不变!
      

  3.   

    谢谢 ErikChen1985()  !   我只会写:   Open strAllDataFile For Random As #FileNumber
     
       比如根据第一行参数(只为4位数字),把新数据写到指定的行上?    谢谢
      

  4.   

    Open strOuttmpFile For Append As #FileNumber
      

  5.   

    谢谢 各位!On Error GoTo Err2
      FileNumber = FreeFile                          '打开文件并追写新数据到文件尾
      Open strAllDataFile For Append As #FileNumber
         Print #FileNumber, strDateTime
         Print #FileNumber, Form1.List1.Text
         Print #FileNumber,
      Close #FileNumber借此再请教一个问题,用一个open 语句能否同时读写 txt 文件?
    比如我每次要把 Form1.List1.Text 的内容写入到 第 3 行处,即更新到文件前部,但不是最前,因为 第 1 ,2行为参数,保持不变!
      

  6.   

    不能,Print # 语句所形成的是顺序文件,只能重写或追加到末尾。
      

  7.   

    虽然都叫 .txt 文件,顺序文件和随机文件的内部格式是不一样的。
      

  8.   

    不可以用顺序文件的方式修改文本文件。①如果每行的字节数一样长,用随机文件的方式打开文件,通过行长计算第3行的位置,Seek 定位后写数据。②用读方式打开文本文件A,用写方式打开临时文件B;循环读取A的每一行:是第3行就用新数据写到B,否则原样写入B;最后用B覆盖A。
      

  9.   


    感谢 of123() ,Tiger_Zhao(VB老鸟)  !请问 Tiger_Zhao(VB老鸟) 能否就你所提方法中的第 2 种:
    ②用读方式打开文本文件A,用写方式打开临时文件B;循环读取A的每一行:是第3行就用新数据写到B,否则原样写入B;最后用B覆盖A。怎么同时打开,又覆盖等给个实例啊!
    比如新数据暂时保存在 变量 strnewdata 中,它不为空,就写入到 b 中.
      

  10.   

    Open strOuttmpFile For append As #FileNumber   or use FileSystemObject object in Refreences.
      

  11.   

    如果你要作这个的话可以使用fso来完成
      

  12.   

    Dim hOldFile As Integer
        Dim hNewFile As Integer
        Dim lLine As Long
        Dim sLine As String
        
        hOldFile = FreeFile()
        Open "A" For Input As #hOldFile
        
        hNewFile = FreeFile()
        Open "B" For Output As #hNewFile
        
        While Not EOF(hOldFile)
            Line Input #hOldFile, sLine
            lLine = lLine + 1
            
            If lLine = 3 Then
                Print #hNewFile, "新文本"
            Else
                Print #hNewFile, sLine
            End If
        Wend
        
        Close #hOldFile
        Close #hNewFile
        
        FileCopy "B", "A"
        Kill "B"
      

  13.   


    谢谢 Tiger_Zhao(VB老鸟)!