AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi .txt in checklistbox anzeigen & angehakte zeilen löschen
Thema durchsuchen
Ansicht
Themen-Optionen

.txt in checklistbox anzeigen & angehakte zeilen löschen

Ein Thema von violinplayer · begonnen am 14. Mai 2007 · letzter Beitrag vom 13. Jan 2009
Antwort Antwort
Seite 1 von 2  1 2      
violinplayer

Registriert seit: 14. Mai 2007
9 Beiträge
 
#1

.txt in checklistbox anzeigen & angehakte zeilen löschen

  Alt 14. Mai 2007, 09:49
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
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

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

  Alt 14. Mai 2007, 10:09
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
Heiko
  Mit Zitat antworten Zitat
violinplayer

Registriert seit: 14. Mai 2007
9 Beiträge
 
#3

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

  Alt 14. Mai 2007, 10:12
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
  Mit Zitat antworten Zitat
Benutzerbild von phreax
phreax

Registriert seit: 1. Mai 2006
Ort: Dresden
147 Beiträge
 
Turbo Delphi für Win32
 
#4

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

  Alt 14. Mai 2007, 10:27
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
Und dann war da noch der junge Mann ....
... der unbedingt Schriftsteller werden wollte.
Er wollte Emotionen wecken und die Leute zum weinen bringen.
Sein Traum wurde wahr, er verfasst heute die Fehlermeldungen bei Microsoft!
  Mit Zitat antworten Zitat
violinplayer

Registriert seit: 14. Mai 2007
9 Beiträge
 
#5

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

  Alt 14. Mai 2007, 10:35
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
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

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

  Alt 14. Mai 2007, 10:38
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
Heiko
  Mit Zitat antworten Zitat
mace

Registriert seit: 13. Jan 2006
27 Beiträge
 
Delphi 7 Personal
 
#7

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

  Alt 14. Mai 2007, 10:44
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)
Conscience is what hurts when everything else feels so good.
  Mit Zitat antworten Zitat
violinplayer

Registriert seit: 14. Mai 2007
9 Beiträge
 
#8

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

  Alt 14. Mai 2007, 10:48
wie deklariere ich writetofile ?

daran hängt es noch ...
  Mit Zitat antworten Zitat
Benutzerbild von phreax
phreax

Registriert seit: 1. Mai 2006
Ort: Dresden
147 Beiträge
 
Turbo Delphi für Win32
 
#9

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

  Alt 14. Mai 2007, 10:52
Zitat von violinplayer:
wie deklariere ich writetofile ?
daran hängt es noch ...
Selberschreiben würde ich das nicht
CheckListBox1.Items.SaveToFile('blub.txt');
Und dann war da noch der junge Mann ....
... der unbedingt Schriftsteller werden wollte.
Er wollte Emotionen wecken und die Leute zum weinen bringen.
Sein Traum wurde wahr, er verfasst heute die Fehlermeldungen bei Microsoft!
  Mit Zitat antworten Zitat
violinplayer

Registriert seit: 14. Mai 2007
9 Beiträge
 
#10

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

  Alt 14. Mai 2007, 11:08
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:29 Uhr.
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