![]() |
Prblem bei erstellen einer txt datei
Hallo,
hab jetzt ma versucht, ein Programm zu schreiben bei dem man Notizen in eine Checklistbox machen kann. Das funktioniert auch alles aber ich möchte, das wenn man das Programm beedet und dann wieder startet das man die Notizen wieder hat. Außerdem soll das Programm die beim schließen automatisch in eine .txt datei schreiben. das sieht bis jetzt so aus:
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Var i:integer; sl:TStringList; begin sl := TStringList.Create; try for i := 0 to CheckListBox1.Items.Count - 1 do begin if (CheckListBox1.Checked[i] = true) then sl.Add(CheckListBox1.Items[i]); end; finally sl.SaveToFile(sDir + '\Notes.txt'); \\sDir ist der Pfard in dem das Programm ist! (sDir:=GetCurrentDir;) sl.Free; end; end; er erzeugt zwar eine Text datei aber schreibt nichts in sie. und wie man die dann wieder ausliest weiss ich leider auch nich...hoffe ihr habt nen paar tipps für mich! |
Re: Prblem bei erstellen einer txt datei
Liste der Anhänge anzeigen (Anzahl: 1)
EDIT: ist in der CheckListBox überhaupt was drin, was gespeichert werden kann?
|
Re: Prblem bei erstellen einer txt datei
ja hab vorher immmer was eingetrage....
|
Re: Prblem bei erstellen einer txt datei
Dann debuge doch mal diese Prozedur und schau was Delphi da macht, bzw.warum es da etwas nicht macht.
Zitat:
Delphi-Quellcode:
if CheckListBox1.Checked[i] then
|
Re: Prblem bei erstellen einer txt datei
Oder probier das ganze mal bei OnCloseQuery und nicht bei OnClose. Vielleicht hilft das ja, weil eigentlich müsste der Code schon stimmen :gruebel:
|
Re: Prblem bei erstellen einer txt datei
na gut das läuft jetzt nur jetzt hab ich ein anderes problem:
ich will das alle abgehackten notizen (checked=true) beim schließen gelöscht werden und danach eingetragen und gespeichert wier: ABER WAS MACHE ICH HIER FALSCH DAS DER IMMER ABSCHMIERT ANSTATT ZU BEENDEN UND ZU SPEICHER:
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var i: integer; sl: TStringList; begin sl := TStringList.Create; try for i := Pred(CheckListBox1.Items.Count) downto 0 do begin if CheckListBox1.Checked[i]=true then CheckListBox1.Items.Delete(i) else sl.Add(CheckListBox1.Items[i]); end; finally sl.SaveToFile(sDir + '\Notes.txt'); sl.Free; end; Form1.Close; end; |
Re: Prblem bei erstellen einer txt datei
ABSCHMIERT ist keine Fehlerbeschreibung!
Was passiert (Fehlermeldung) und wo passiert es. Auch hier hilft oftmals ordentliches Debugen! sl.SaveToFile gehört vor das Finally, denn tritt dort eine Exception auf, weil z.B. nicht gespeichert werden konnte, dann wird SL nicht freigegeben. Form1.Close in OnClose? Ich den die Form wurde schon geschlossen? Und ganz interessant: Warum willst du die Einträge löschen, wo die Form doch eh grad geschlossen und womöglich gleich gelöscht wird? Und ws soll bitte dieses GROßGESCHREIBE bringen? (auf mich wirkt es so, als wenn ich angeschrieen werde) |
Re: Prblem bei erstellen einer txt datei
Ich würde vermuten, dass es gar nicht kompiliert, aufgrund dieser schönen Zeile:
Code:
sollte das nicht vielleicht
sl.Add(CheckListBox1.Items[i]);
Code:
oder .Caption am Ende heißen?
sl.Add(CheckListBox1.Items[i].Text);
HTH.. |
Re: Prblem bei erstellen einer txt datei
also fangen wir mal an:
es gibt keine Fehlermeldung sondern der Taskmanager meint keine Rückmeldung und meine CPU ist bei 90-100%(beide) auslastung (duel core 3ghz pro kern)
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var i: integer; sl: TStringList; begin sl := TStringList.Create; try for i := Pred(CheckListBox1.Items.Count) downto 0 do begin if CheckListBox1.Checked[i]=true then CheckListBox1.Items.Delete(i) else sl.Add(CheckListBox1.Items[i]); end; sl.SaveToFile(sDir + '\Notes.txt'); finally sl.Free; end; Form1.Close; end; muss dat sl.savefile da wos jetzt ist hin? in die schleife kanns ja eigentlich nich gehören... |
Re: Prblem bei erstellen einer txt datei
Hat sich mal einer meinen VORSCHLASG angesehen?
Das funktioniert nämlich. Davon abgesehen, du solltest die erstmal die Basics ansehen, bevor du irgentwelche Funktionen wie pred verwendest. Hättets du die die Basics auf ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz