Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi .txt in checklistbox anzeigen & angehakte zeilen löschen (https://www.delphipraxis.net/92069-txt-checklistbox-anzeigen-angehakte-zeilen-loeschen.html)

violinplayer 14. Mai 2007 09:49


.txt in checklistbox anzeigen & angehakte zeilen löschen
 
Hallo,

ich brauche mal eure Hilfe bei einer CheckListBox.

Ich habe eine .txt Datei welche ich auslese und zeilenweise in einer checklistbox darstelle.

Soweit funktioniert das auch !

Jetzt möchte ich aber aus dieser Datei DIE ZEILEN LÖSCHEN, welche ich dann in der checkListBox auswähle...

leider bekomme ich das nicht hin ..


Die Werte aus der Datei lese ich wie folgt aus:

ChecklistBox1.Items.LoadFromFile(myPCharfile);

-> myPcharfile enthält die Pfadangabe zur Datei file.txt

viele Grüße
Florian

--------
Delphi 7 Personal

hoika 14. Mai 2007 10:09

Re: .txt in checklistbox anzeigen & angehakte zeilen lös
 
Hallo,

lade die Datei in eine TStringList (die hat auch ein LoadFromFile),
übergebe sie per CheckList.Itesm.Assing(StringList).

Lösche die Zeilen aus der StringList, die markiert in der ListBox sind
(am besten von hinten per downto)
und schreibe das Ergebnis in die Datei "zurück" (die alte wird überschrieben).

Ein DeleteLine gibt es bei Textdateien nicht.


Heiko

violinplayer 14. Mai 2007 10:12

Re: .txt in checklistbox anzeigen & angehakte zeilen lös
 
Hallo Heiko,

danke für die schnelle Antwort..

leider bin ich absoluter neuling und kann das was du schreibst leider programiertechnisch noch nicht bewerksteligen..

wenn es snihct zu viele zeilen sind wäre mir die fertig ausformulierte lösung das liebste, dann kann ich mir anhand dessen es besser verdeutlichen wie es funktioniert.

viele grüße
florian

phreax 14. Mai 2007 10:27

Re: .txt in checklistbox anzeigen & angehakte zeilen lös
 
Hallo violinplayer

Also das ganze ist relativ simpel, denn die Cheklistbox Items sind ja berteits eine StringList also muss man die checkbox nur durchgehen und gucken ob ein item selected ist, dann dieses löschen.
Komplex wird das ganze erst durch dei daraus resultierende Indexverschiebung, weshalb das ganze nicht so leicht mit einer for Schleife gelöst wrden kann (Kannst es ja mal probieren ;) ).

Hier das ganze als Codebesipiel, aber bitte bnicht nur Copy & Paste, wenn du den Code nicht verstehst dann frag einfach nach.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var I: Integer;
begin
I := 0; //inistialisieren
while CheckListBox1.Items.Count > I do //Damit .Count immer wieder aktualisiert wird
 if CheckListBox1.Checked[I] then
   CheckListBox1.Items.Delete(I) else Inc(I); //weil der Index "nachruchtscht"
end;
Grüße Phreax

violinplayer 14. Mai 2007 10:35

Re: .txt in checklistbox anzeigen & angehakte zeilen lös
 
ok.. soweit klar und verstanden ..

wie schreibe ich das ganze dann so in die datei das die weggefallenen items auch "weg" sind ?

viele Grüße
Florian

hoika 14. Mai 2007 10:38

Re: .txt in checklistbox anzeigen & angehakte zeilen lös
 
Hallo,

nach dem delete Code einfach
CheckListBox.WriteToFile(?)

Damit wird die alte Datei überschrieben.
Die die Zeilen in der CheckListBox nicht mehr drinstehen,
sind sie auch in der neuen Datei nicht drin.


Heiko

mace 14. Mai 2007 10:44

Re: .txt in checklistbox anzeigen & angehakte zeilen lös
 
Es gibt genauso wie es ein LoadFromFile gibt auch ein SaveToFile. :)
Damit kannst du grad die Datei, mit den gelöschten Zeilen, neu erstellen. (mit gleichem oder anderem Namen)

violinplayer 14. Mai 2007 10:48

Re: .txt in checklistbox anzeigen & angehakte zeilen lös
 
wie deklariere ich writetofile ?

daran hängt es noch ...

phreax 14. Mai 2007 10:52

Re: .txt in checklistbox anzeigen & angehakte zeilen lös
 
Zitat:

Zitat von violinplayer
wie deklariere ich writetofile ?
daran hängt es noch ...

Selberschreiben würde ich das nicht ;)
Delphi-Quellcode:
CheckListBox1.Items.SaveToFile('blub.txt');

violinplayer 14. Mai 2007 11:08

Re: .txt in checklistbox anzeigen & angehakte zeilen lös
 
ich bekomme immer die Fehlermeldung "Undeclared identifier" 'savetofile' oder 'writetofile' je nachdem was ihc nehmen möchte ..

wie muss ich es in Type deklarieren ?

viele Grüße
Florian


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:47 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz