Forum: Sonstige Fragen zu Delphi
Delphi
by gsh,
23. Sep 2009
Danke für deinen Test. Dein Beispiel funktioniert bei mir auch.
Aber eins verstehe ich nicht. Die "alte" Tail function (mit FileStream) funktioniert jetzt plötzlich auch :gruebel: Eigentlich hab ich ja nichts dran geändert.
function Tail(FileName:string; Position:Integer):string;
var
S: TStream;
L: Integer;
begin
S := TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone);
Forum: Sonstige Fragen zu Delphi
Delphi
by gsh,
23. Sep 2009
Wenn ich das richtig verstanden habe dann wird aber FileOpen und FileReads doch eh von TFileStream aufgerufen oder?
Forum: Sonstige Fragen zu Delphi
Delphi
by gsh,
23. Sep 2009
Hab jetzt testweiße eine Datei mit: FS := TFileStream.Create('C:\test.txt', fmOpenReadWrite or fmShareDenyWrite); blockiert.
In diesem Fall konnte ich sie mit S := TFileStream.Create('C:\test.txt', fmOpenRead or fmShareDenyNone); ohne Probleme auslesen.
Forum: Sonstige Fragen zu Delphi
Delphi
by gsh,
23. Sep 2009
Also ein fmShareExclusive sozusagen.
Aber warum können dann andere Anwendung das File öffnen?
Forum: Sonstige Fragen zu Delphi
Delphi
by gsh,
23. Sep 2009
Hier das Ergebnis vom TStringList test:
Forum: Sonstige Fragen zu Delphi
Delphi
by gsh,
22. Sep 2009
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:
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...
Forum: Sonstige Fragen zu Delphi
Delphi
by gsh,
22. Sep 2009
hmm da hast du recht. hab das einfach aus Post #3 kopiert.
Funktioniert aber auch mit einem OR nicht :(
Forum: Sonstige Fragen zu Delphi
Delphi
by gsh,
22. Sep 2009
Mach ich doch auch nicht :gruebel:
S := TFileStream.Create(FileName, fmOpenRead ,fmShareDenyNone);
Forum: Sonstige Fragen zu Delphi
Delphi
by gsh,
22. Sep 2009
hmm also mit WinTail hatte ich bis jetzt noch keine Probleme. Warum funktioniert das bei WinTail so Problemlos? Habe gerade bemerkt das notepad, plainedit und sogar Firefox die Datei öffnen kann. Nur Dreamweaver meldete einen Zugriffsfehler.
Jemand eine ahnung warum diese Programm es können?
Forum: Sonstige Fragen zu Delphi
Delphi
by gsh,
22. Sep 2009
Bringt mir nichts da es ganz wichtig ist das z.b. so eine datei: \\entfernterpc\freigabe\datei.log auch geöffnet werden kann. Da der Service der auf die Datei zugreift somit nicht auf dem gleichen System ist ...
Der Service greift immer als erstes und andauerend auf die Datei zu. Somit geht diese Lösung leider auch nicht.
ich dachte Filesystem Zugriffe werden durch Windows Threadsafe...
Forum: Sonstige Fragen zu Delphi
Delphi
by gsh,
22. Sep 2009
Also ich fass es mal kurz zusammen:
* Sagen wir mal jede Sekunde die Dateigröße überprüfen.
* Wenn die Dateigröße kleiner geworden ist (sollte eigentlich nicht vorkommen) -> Datei komplett neu einlesen
* Wenn die Dateigröße größer geworden ist dann über den Filestream die letzten Änderungen einlesen (Post #3)
Dies klingt für mich mal ganz gut (Hätte ich eigentlich auch selbst drauf kommen...