请问,现在我如何在文件的最后一行写入文字?
主要问题就是怎么移到最后一行去~
Private Sub WriteIntoLog(DateLog As String, StrLog As String)
    Dim StrTmp As String
    Open App.Path & "\log.ini" For Output As #4
        StrTmp = vbCrLf & "[" & DateLog & "]" & "       " & StrLog
        Print #4, StrTmp
    Close #4
End Sub例如这个,我只能在第一行写入文字,但是,当我第二次写入的时候,我原来写的那行东西就没有了.

解决方案 »

  1.   

    首选读出文件
    dim s as string
    Open App.Path & "\log.ini" For Input As #1
    s = StrConv(InputB(LOF(1), #1), vbUnicode)
    Close #1
    再写入Open App.Path & "\log.ini" For Output As #4
            StrTmp = s & vbCrLf & "[" & DateLog & "]" & "       " & StrLog
            Print #4, StrTmp
    Close #4
      

  2.   

    Open App.Path & "\log.ini" For Append As #4
      

  3.   

    对ini文件操作用api函数效果比较好。
    模块如下:
    Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Public Declare Function Putfocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
    Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    Public Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
    Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
    Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
    Public Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long
    Public Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    Public Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
    Public Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    Public Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long
    Public Declare Function GetFullPathName Lib "kernel32" Alias "GetFullPathNameA" (ByVal lpFileName As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, ByVal lpFilePart As String) As Long
    Public Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
    Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As LongPublic Const SW_RESTORE = 9
    Public mhwnd() As Long
    Public sPath As String         '/获取servU中ServUDaemon.ini的绝对路径
    Public uSeno_ As Integer       '/用户个数
    Public wSeno_ As Integer       '/定义目录数Public Const TristateUseDefault = -2
    Public Const TristateTrue = -1
    Public Const TristateFalse = 0
    Public Const ForReading = 1
    Public Const ForWriting = 2
    Public Const ForAppending = 8Function ReadIni(AppName As String, KeyName As String, FileName As String)
        Dim Ret As String
        Dim NC As Integer
            
            Ret = String(1024, 0)
            NC = GetPrivateProfileString(AppName, KeyName, "", Ret, 1024, FileName)
            
            If NC <> 0 Then Ret = Left$(Ret, Len(Ret) - 1024 + NC) Else Ret = ""
            
            ReadIni = Ret
    End FunctionFunction WriteIni(AppName As String, KeyName As String, lpString As String, FileName As String)
        
        WritePrivateProfileString AppName, KeyName, lpString, FileNameEnd FunctionFunction ReadSystemIni(AppName As String, KeyName As String)
        Dim Ret As String
        Dim NC As Integer
        
        Ret = String(1024, 0)
        NC = GetProfileString(AppName, KeyName, "", Ret, 1024)
        
        If NC <> 0 Then Ret = Left$(Ret, Len(Ret) - 1024 + NC) Else Ret = ""    ReadSystemIni = Ret
    End FunctionFunction WriteSystemIni(AppName As String, KeyName As String, lpString As String)
        WriteProfileString AppName, KeyName, lpString
    End FunctionFunction SystemPath() As String
        Dim SystemDirectory As String
        Dim x As Long
        
        SystemDirectory = String(1024, 0)
        x = GetSystemDirectory(SystemDirectory, 1024)
        SystemPath = Left$(SystemDirectory, Len(SystemDirectory) - 1024 + x)End FunctionFunction WindowsPath() As String
        Dim WindowsDirectory As String
        Dim x As Long
        
        WindowsDirectory = String(1024, 0)
        x = GetWindowsDirectory(WindowsDirectory, 1024)
        WindowsPath = Left$(WindowsDirectory, Len(WindowsDirectory) - 1024 + x)
    End FunctionFunction TempPath() As String
        Dim TempDirectory As String
        Dim x As Long
        
        TempDirectory = String(1024, 0)
        x = GetTempPath(1024, TempDirectory)
        TempPath = Left$(TempDirectory, Len(TempDirectory) - 1024 + x)
    End Function====================================================================
      

  4.   

    and also thank you zcm123(抵制日货从我做起)