Variablen fortlaufend in eine Datei schreiben

Hallo,
ich möchte eine Error.log in mein Programm bauen.
ich vermute das FreeFile ´wohl falsch ist da ich die alten einträge nicht überschreiben möchte.

oder muss ich erst den ganzen inhalt der Datei einlesen um sie danach vor den neuen eintrag zu schreiben?

ff = FreeFile
Open „error.log“ For Output As #ff
Print #ff, date
Print #ff, error1
Close #ff

mfg jonny

Hi Joe,

ich möchte eine Error.log in mein Programm bauen.
ich vermute das FreeFile ´wohl falsch

nein, das ist so völlig richtig.

ist da ich die alten
einträge nicht überschreiben möchte.

Dann mußt Du Output durch Append ersetzen.

oder muss ich erst den ganzen inhalt der Datei einlesen um sie
danach vor den neuen eintrag zu schreiben?

Nicht nötig.

ff = FreeFile
Open „error.log“ For Output As #ff
Print #ff, date
Print #ff, error1
Close #ff

Gruß, Rainer

Hallo Jonny,

da ich gerade ein wenig Zeit und Lust zum schreiben hab :wink: ein kleines Demo, für eine Fehlerbehandlung :wink: Vom prinzip her hat Rainer alles schon erklärt :smile:

'Code zum Bsp. im Formular

Private Sub Macheirgendwas()
On Error Goto ErrHandler
'Dein Code
Exit sub
ErrHandler:
if err.Number13 then
 'Code soll nicht Protokolliert werden und zurueck ins progg
 Resume next
else
 'Code soll bearbeitet werden und nicht protokolliert werden
 'Deine Fehlerbehandlung
 'Resume oder Resume next
end if
End Sub

Private Sub Macheirgendwas1()
On Error Goto ErrHandler
'Dein Code
Exit sub
ErrHandler:
 Call ErrorLog(True,Err.Description) 'Fehler wird protokolliert und nicht bearbeitet
 'Resume , Resume next oder garnichts wenn die Sub verlassen werden soll
End Sub

Private Sub Macheirgendwas2()
On Error Goto ErrHandler
'Dein Code
Exit sub
ErrHandler:
 Call ErrorLog(False, Err.Description,Me,"Macheirgendwas2",Err.Number) 'Fehler wird nicht protokolliert und bearbeitet
 'Resume , Resume next oder garnichts wenn die Sub verlassen werden soll
End Sub

'Code im Modul

Public Sub ErrorLog(Schreiben as Boolean, Optional Fehlermeldung,Optional F as Form, Optional S as String, Optional E as Long)
On Error Resume next
Dim FNr as Byte
Dim sFile as String
If Schreiben then
 'Error schreiben
 FNr=Freefile
 sFile = IIF(right(App.Path)="\",App.Path & "Error.log", App.Path & "\Erro.log")
 open sFile for Append as #FNr
 Print #FNr,date
 Print #FNr,Fehlermeldung
 Close #FNr
else
 'Code zur Fehlerbehandlung
 ' F = Form in der Fehler auftritt
 ' S= in Welcher Sub
 ' E = Fehlernummer
End If
End Sub

MfG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]