现在的问题是这样的,我想把程序的报错信息保存在一个文本文件中,
怎么把一行错误信息加到文本文件呢。
例如:a.txt的内容有
agdg
dsag
dgds
我如何找a.txt并且把"dasgjsdd"加到文本文件,使用a.txt文件的内容如下:
agdg
dsag
dgds
dasgjsdd

解决方案 »

  1.   

    Private Sub Command1_Click()
    Open "C:\temp.txt" For Append As #1
     Print #1, "dasgjsdd"
    Close #1
    End Sub
      

  2.   

    如何找a.txt
    ========
    如果是你的文档,你不会不知道吧?
    如果是别人的,可以写一个查找文件功能的函数找到文件后再进行操作,查找文件功能的函数到处都有,本论坛就可以搜到好多
      

  3.   

    Private Sub Command1_Click()
    Dim a As String
    Open "c:\a.txt" For Append As #1
    a = Text1.Text
    Print #1, a
    Close #1
    End Sub
      

  4.   

    Append方式,兼有建立文件的功能
      

  5.   

    Private Sub Command1_Click()
          Open App.Path & "\Error.log" For Append As #1
          Print #1, "File Error!"
          Close #1
    End Sub
    这样,文件会记录到你的根目录下的“Error.log”文件中,如果没有它会创建一个。
      

  6.   

    使用Append 关键字,MSDN中有描述
      

  7.   

    如果是初学,建议你用楼上的Append参数,这样很好理解。下面的办法适用性比较强,不仅仅适合添加数字,稍微修改可以追加二进制文件。Dim tString As String '字符串
    Dim tBytes() As Bytes '保存字符串的数组(存储状态的编码)tString="dasgjsdd"
    tBytes()=StrConv(tString, vbFromUniCode) '需要将UniCode转换为Ascii和GBK。Dim tFileNumber As IntegertFileNumber=FreeFile '自动获得一个空闲文件号Open pFileName For Binary As #tFileNumber  Dim tStart As Long '写入位置  tStart=LOF(tFileNumber)+1 'LOF返回文件最后一个字节。加一得到写入位置。  Put #tFileNumber, tStart, tBytes() '将数组写入到文件。Close #tFileNumber
      

  8.   

    再教你另外一个思路解决该问题:将原文件读入内存,在内存中追加,之后覆盖原文件内容。类似记事本这种文本编辑器都是类似原理。Dim tOutString As String '追加后的文本
    Dim tOutBytes() As Bytes '追加后文本的字节数据Dim tSurString As String
    Dim tAppString As String
    Dim tSurBytes() As Bytes
    Dim tAppBytes() As BytestAppString="dasgjsdd"Dim tFileNumber As IntegertFileNumber = FreeFile '自动获得一个空闲文件号Open pFileName For Binary As #tFileNumber  Dim tFileSize As Long
      tFileSize = LOF(tFileNumber)  ReDim tSurBytes(tFileSize - 1)
      Get #tFileNumber, 1, tSurBytes()
      
      tSurString=StrConv(tSurBytes(), vbUniCode)  tOutString=tSurString & vbCrlf & tAppString  tOutBytes()=StrConv(tOutString, vbFormUnicode)  Put #tFileNumber, 1, tOutBytes()
    Close #tFileNumber
      

  9.   

    Open App.Path & "\Error.txt" For Append As #1
    Print #1, "dasgjsdd"
    Close #1如果文件不存在它会自动创建的
      

  10.   

    Public Function ErrProc(ErrObj As ErrObject, strFunName As String)
           
           
           Dim FileObj As Scripting.FileSystemObject
           Dim TextObj As TextStream
           Dim strErrText As String
           
           Set FileObj = CreateObject("Scripting.FileSystemObject")
           If FileObj.FileExists(App.Path & "\eMisInfoQuick_Server_ErrorLog.txt") = False Then
                Set TextObj = FileObj.CreateTextFile(App.Path & "\eMisInfoQuick_Server_ErrorLog.txt")
           Else
                Set TextObj = FileObj.OpenTextFile(App.Path & "\eMisInfoQuick_Server_ErrorLog.txt", ForAppending)
           End If
           
           
           strErrText = ErrObj.Number & vbTab & _
                        ErrObj.Description & vbTab & _
                        ErrObj.Source & vbTab & _
                        strFunName & vbTab & _
                        Now
           
           TextObj.WriteLine strErrText
           TextObj.Close
           
           Set TextObj = Nothing
           Set FileObj = Nothing
          
    End Function
      

  11.   


       以Append的方式打开文件就OK了!
      

  12.   

    找到文件 -----------
     用 Dim fileobj as new fileobjectsystem
            fileobj.ShowOpen '寻找就可以了啊
         fileobj.Filename 就是全路径
      

  13.   

    不要管别的,一楼是最简单得方法,不用检查文件是否存在,如果存在则追加文件,不存在那么就新建一个,保证没有任何错误,速度也是最快的,代码也是最少的.
    Private Sub Command1_Click()
    Open "C:\temp.txt" For Append As #1
     Print #1, "dasgjsdd"
    Close #1
    End Sub
      

  14.   

    其实,我看要把报错信息是作成*.INI文件更方便一点,比如什么时间什么错误的都可以去记录,也方便查询,有关*.ini文件的读写这个论坛里面有很多,楼主有兴趣的可以找找看。
      

  15.   

    作成*ini可以是这样的:[错误记录]
    2004-08-09 15:37:50=发生什么错误
    2004-08-09 15:50:50=错误描述这样比较清晰吧,供参考。
      

  16.   

    继续楼主的问题,是这样的,即是一般的软件保护问题:
    (1)在程序目录下有一个文本sb,初始化有以下内容:
    '--------------
    ini="c:\c
    nuber=88888
    '-------------
    (2)一个主窗体form1有一个按钮,一个输入框(用来输入序号,正确的序列号是:99999)1,现在启动form1时,程序先搜索sb里面的nuber是否等于99999,不然就报错并提示用户输入。
    2,在输入框,输入序列号完成后,按确定按钮,如果输入正确,nuber就会修改成99999,
    不然报错。谢谢