Entwickler-Ecke
Dateizugriff - in .log speichern
tha_blaze - Di 18.01.05 14:54
Titel: in .log speichern
Mahlzeit :D
ich hab ein prog geschrieben was dateien aus einem ordner ausliest das wird durch einen timer verursacht. die dateien werden in einem memo aufgelistet und sollen in einer .log gespeichert werden. der timer soll das alle 5 sek tun und das ganze 5mal also soll am ende in der log datei alle dateien 5mal aufgelistet sein bisher kriege ich das bloß so hin das alle dateien 1mal drinstehen.
hier noch ein wenig source zum verstehen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Timer1Timer(Sender: TObject); begin if zaehler=5 then begin close; end else begin zaehler:= zaehler+1; s:=TStringlist.Create; ListFileDir('c:\medlinq\easy\*.*',s); memo1.Clear; memo1.Lines.AddStrings(s); s.Free; memo1.Lines.SaveToFile('test.log'); end; end; |
thx
AXMD - Di 18.01.05 15:01
Titel: Re: in .log speichern
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.Timer1Timer(Sender: TObject); begin if zaehler=5 then begin close; end else begin zaehler:= zaehler+1; s:=TStringlist.Create; ListFileDir('c:\medlinq\easy\*.*',s); memo1.Clear; Memo1.Lines.LoadFromFile('test.log'); memo1.Lines.AddStrings(s); s.Free; memo1.Lines.SaveToFile('test.log'); end; end; |
Hätt ich so gelöst
AXMD
jasocul - Di 18.01.05 15:03
SaveToFile überschreibt immer die angegebene Datei.
Du musst dir eine zweite StringList anlegen, in der alle Daten gesammelt werden. Diese speicherst du dann zum Schluss mit SaveToFile.
AXMD - Di 18.01.05 15:06
Wobei mein Vorschlag mit LoadFromFile sicher auch funktionieren würde ;)
AXMD
jasocul - Di 18.01.05 15:07
AXMD hat folgendes geschrieben: |
Wobei mein Vorschlag mit LoadFromFile sicher auch funktionieren würde ;) |
Logisch. Du warst nur schneller als ich beim posten.
tha_blaze - Di 18.01.05 15:18
kann es sein das man die log datei am ende auch freigeben muss weil ich hab das programm jetzt 2mal gestartet (also den timer 10mal durchlaufen lassen) und in der log waren dann alle diese dateien aber er soll ja bloß 5mal die dateien anzeigen. also muss die datei doch am ende wieder freigegeben werden oder irre ich mich da...
thx
jasocul - Di 18.01.05 15:32
Du musst beim ersten Durchlauf die Datei erstmal löschen, wenn sie schon existiert. Am einfachsten mit einem SaveToFile, wenn im Memo noch nichts drin steht.
tha_blaze - Di 18.01.05 15:34
kann ich dann nich savetofile vor dem:
ja das klappt alles klar habt dank meine kompetenten retter... :rofl:
jasocul - Di 18.01.05 15:42
Nein. Dann würde dir das Sammeln aus den 5 Durchläufen fehlen.
Du kannst auch im Create der Form mit der Funktion FileExists feststellen, ob die Datei existiert. Mit DeleteFile löscht du dann die Datei, falls sie existiert.
Die Funktionsaufrufe sind nicht schwierig und stehen gut dokumentiert in der OH.
tha_blaze - Mi 19.01.05 11:16
doch es hat im groben geklappt aber mein chef wollte das irgendwie anders gemacht haben aber es funktioniert trotzdem :D jetzt soll ich das erst alles in einer tmp.log speichern und wenn das programm fretig is wird die datei umbenannt und die tmp.log wird gelöscht. da soll auch wieder am ende 5mal alle dateien drinstehen aber bisher stehen sie bloß einmal drinn. :puke:
thx 4 help 8)
AXMD - Mi 19.01.05 13:34
Hat dein Chef kein Kurzzeitgedächtnis, dass er das ganze gleich in fünffacher Ausführung braucht?
AXMD
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!