Thema: Delphi Tail Funktionalität

Einzelnen Beitrag anzeigen

Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#18

Re: Tail Funktionalität

  Alt 23. Sep 2009, 00:04
Zitat von sx2008:
Wenn man eine Datei öffnet kann man Sharing-Flags angeben:
a) andere Prozesse dürfen Lesen & Schreiben
b) andere Prozesse dürfen nur Lesen
c) andere Prozesse dürfen nur Schreiben (eher ungewöhnlich)
d) andere Prozesse dürfen gar nichts (Exclusiv Modus)
Der Begriff "andere Prozesse" ist etwas ungenau: man kann die gleiche Datei auch mehr als einmal öffnen und hat dann den gleichen Status wie fremde Prozesse.
Ausserdem muss man angeben, ob man die Datei lesen/schreiben oder beides möchte.
Wenn der Dateiersteller die Variante c) oder d) wählt, dann kann die Datei von niemand anderem gelesen werden, solange sie noch im Zugriff ist.
Wenn das Öffnen wie in Betrag #15 versagt, hat man einfach Pech gehabt weil einer der anderen beteiligten Prozesse (in aller Regel der Dateiersteller) das Lesen nicht zulässt.
Man müsste schon die Sperren des Betriebssystems umgehen, um da dran zu kommen.
Hab das noch mal getestet und bin drauf gekommen das ich vorhin einen kleinen Fehler gemacht habe.
Die Datei wird vom Service nicht mit einem Filestream sondern so aufgemacht:
Delphi-Quellcode:
AssignFile(vFileHandle, vAktLogFilename);
if FileExists(vAktLogFilename) then Append(vFileHandle)
else Rewrite(vFileHandle);
Warum funktioniert meine Tail funktion bei dem nicht?
Mit Notepad und so bekomme ich sie ja auch auf.
Mit welchen "Rechten" wird die Datei bei der obrigen function aufgemacht?
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat