Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Prblem bei erstellen einer txt datei (https://www.delphipraxis.net/144371-prblem-bei-erstellen-einer-txt-datei.html)

jonsen2.0.0.9 6. Dez 2009 12:18


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!

Micha88 6. Dez 2009 12:23

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?

jonsen2.0.0.9 6. Dez 2009 12:46

Re: Prblem bei erstellen einer txt datei
 
ja hab vorher immmer was eingetrage....

himitsu 6. Dez 2009 12:54

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] = true) then

versuch mal
Delphi-Quellcode:
if CheckListBox1.Checked[i] then

patti 6. Dez 2009 12:58

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:

jonsen2.0.0.9 6. Dez 2009 13:01

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;

himitsu 6. Dez 2009 13:12

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)

wicht 6. Dez 2009 13:14

Re: Prblem bei erstellen einer txt datei
 
Ich würde vermuten, dass es gar nicht kompiliert, aufgrund dieser schönen Zeile:
Code:
sl.Add(CheckListBox1.Items[i]);
sollte das nicht vielleicht
Code:
sl.Add(CheckListBox1.Items[i].Text);
oder .Caption am Ende heißen?

HTH..

jonsen2.0.0.9 6. Dez 2009 13:23

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...

Micha88 6. Dez 2009 13:25

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 www.dsdt.info abgesehen, so hättest du hier hete keine Fragen gestellt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:00 Uhr.
Seite 1 von 2  1 2      

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