![]() |
TStringlist aus Datei gelesen
Hallo, ich habe ein Problem:
Ich speichere eine TStringliste mit Dateinamen inkl. Pfad in eine Playlist.lst ab. Beim nächsten Programmstart lädt er die Strings wieder ein. Jetzt möchte ich beim einladen der Liste feststellen, ob die hinterlegten Dateien noch existieren und wenn nicht, sollen diese aus der Liste gelöscht werden, den restlichen Dateien werden die Pfade gekappt und der sichtbaren Listbox zugeführt. Kann da jemand helfen?
Delphi-Quellcode:
procedure Tmediaplayer_frm.FormActivate(Sender: TObject);
var i:integer; begin if config_frm.playlist_load_select.Checked = true then begin if FileExists(ProgrammPfad + '\PlayList.lst')then begin PlayList.LoadFromFile(ProgrammPfad + '\PlayList.lst'); For i:=0 to PlayList.Count-1 do //if FileExists(PlayList.Strings[i]) then //Playlist.Delete(i); //else PlayList_ListBox.Items.Add(ExtractFileName(PlayList[i])); end else end; end; |
Re: TStringlist aus Datei gelesen
Ich würde mal das vorschlagen:
Delphi-Quellcode:
In der For-Schleife Items aus der Liste zu löschen ist sehr ungut, da das Schleifenende von der ursprünglichen Anzahl der Einträge bestimmt ist.i:=0 while i < PlayList.Count do if FileExists(PlayList.Strings[i]) then begin PlayList_ListBox.Items.Add(ExtractFileName(PlayList[i])); inc(i) end else PlayList.Delete(i) |
Re: TStringlist aus Datei gelesen
Danke, das funktioniert prima. Hmm wäre da nicht drauf gekommen. :-D
|
Re: TStringlist aus Datei gelesen
Du kannst auch mit For ... arbeiten, mußt dann aber rückwärts zählen, also
for i:=PlayList.Count-1 downto 0 do ..... |
Re: TStringlist aus Datei gelesen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo bluescreen25,
du könntest es auch noch ganz anders angehen. Die angehängte Demo zeigt dir, wie du deine Daten nur einmal verwaltest und doch die Darstellung deiner Wahl erhalten kannst. Du musst dazu nur die ListBox in den virtuellen Modus versetzen (ListBox.Style = lbVirtual). Grüße vom marabu |
Re: TStringlist aus Datei gelesen
Zitat:
|
Re: TStringlist aus Datei gelesen
Zitat:
wenn du aber mit for I := Länge downto 0 arbeitest und dann bspw. der ersten (also in diesem fall den letzten Eintrag = Länge) löscht, hast du kein problem, da der nächste ja einfach Länge - 1 ist. Hoffe das war einigermaßen verständlich. |
Re: TStringlist aus Datei gelesen
ja auf jeden Fall, vielen Dank !
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 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