An existierende Logdatei anfügen

dark_ghost

Erfahrenes Mitglied
Hallo zusammen,
ich habe folgendes Problem mit meiner Logdatei.

Mein Programm erstellt für jeden Tag eine Logdatei mit Datum. Wird das Programm aber 2mal oder öfter an einem Tag ausgeführt wird die bereits bestehende Log überschrieben.

Jetz habe ich eine Abfrage eingebaut, die prüft ob die Logdatei bereits existiert oder nicht.
Existiert die Logdatei noch nicht wird diese erstellt.
Existiert die Logdatei soll diese nicht überschrieben werden sonder der Inhalt einfach unten angefügt werden.
Mit welchem Befehl sage ich Perl, die Datei soll nicht überschrieben werden sondern der Inhalt einfach nur an die bestehende angefügt werden soll


Vielen Dank
Andreas
 
Mit
Code:
open(FILEHANDLE, ">> dateiname.ext");
wird eine Datei zum Anhängen geöffnet. Wenn die Datei noch nicht existiert, wird sie angelegt.
 
Danke, das funktioniert wunderbar.

Jetz wird mir halt einfach das ganze nochmal darunter geschrieben, wie kann ich denn davor noch einen Text einfügen wie z.B. "Die Datei wurde nocheinmal am gleichen tag aufgerufen, dies wurde angehängt"



Gruß
Andreas

Danke für die schnelle Antwort.
 
Erstmal ein großes danke an jokey2 für den Tipp, funktioniert wunderbar.

Die Sache, dass er mir vor dem angefügten noch nen Texthinschreibt hab ich so gelöst:

Code:
#Datei in die geschrieben werden soll
my $datei_geblog = $datum . "_GebLog.txt";
#wenn datei existiert, füge hinzu
if (-e $datei_geblog)
{
	#Öffnen der bestehenden Datei und füge text hinzu
	unless (open (OUT, ">> $datei_geblog") )
	{
		die "Kann Datei nicht schreiben: $!\n";
	}
	
	print OUT &Getalternativelogkopf;	
}
#wenn datei nicht existiert, erstelle datei
else
{
	#Öffnen und erstellen der Datei
	unless (open (OUT, "> $datei_geblog") )
	{
		die "Kann Datei nicht schreiben: $!\n";
	}
	
	#Dateikopf schreiben
	print OUT &GetLogkopf;
}

Zuerst eine Abfrage ob die Datei existiert.
Existiert die Datei, öffnet er die Datei zum hinzufügen und schreibt mir den alternativen Logkopf rein.
Existiert die Datei nicht, erstellt er die Datei und öffnet sie zum Schreiben und schreibt mir den Logkopf rein.

Vielen Dank
Andreas
 
Du könntest auch nach dem Öffnen mit 'tell(...)' den Dateizeiger abfragen. Nach dem Öffnen mit '>>' sollte er >0 sein, wenn die Datei schon da war und etwas drinsteht, wenn sie neu angelegt wurde oder leer ist, sollte er =0 sein. Habe ich aber nicht getestet.
Code:
if(tell(OUT))
 {
   print OUT &Getalternativelogkopf;
 }
 else
 {
   print OUT &GetLogkopf;
 }
 
Hi,

hab das mal ausgetestet, hat aber leider nicht funktioniert. Möglicherweise hab ich aber auch nen Fehler gemacht. Werds bei der alten Methode lassen.

Gruß
Andreas
 
Zurück