Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Sehr Schwierige Frage ;-) INI Musik Datenbank (https://www.delphipraxis.net/83296-sehr-schwierige-frage-%3B-ini-musik-datenbank.html)

hedie 30. Dez 2006 16:10

Datenbank: INI • Version: bö? • Zugriff über: Direkt

Sehr Schwierige Frage ;-) INI Musik Datenbank
 
Hallo

Ich bin gerade daran einen Musik Player zu Programmieren
bei dem man Via DragDrop Files Hinzufügen kann wa auch alles super klappt.

Die Lieder werden gespeichert und auch geladen.

Doch das Problem isst wenn ich sie aus der Listbox Entferne, dann werden sie auch automatisch aus der
INI Entfern und zwar so

Delphi-Quellcode:
VAR
sel:integer;
begin
SEL := Listbox1.ItemIndex;
Listbox1.Items.Delete(sel);
listbox2.Items.Delete(sel);
ini.EarseSection(inttostr(sel);
Und dann bleibt in der INI das zurück

Code:
[LISTB1]
CAPACITY=1[LISTB2]
CAPACITY=1
[1]
1=C:\Dokumente und Einstellungen\hedie\Eigene Dateien\Eigene Musik\03 inxs-taste it.mp3
2=Taste It
[VARIABLE]
VARI=0
Das Problem ist, das mein Programm die LIST Box so füllt

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
ii:integer;
label return2;
begin
ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'msett.ini');
i := ini.ReadInteger('VARIABLE','VARI',0);
ii := 0;
RETURN2:;
if ii = i then begin
showmessage ('MD0052 -- Load Erfolgreich');
exit;
end
Else begin
Listbox1.Items.Add(ini.ReadString(inttostr(ii),'2','ER0098'));
Listbox2.Items.Add(ini.ReadString(inttostr(ii),'1','ER0099'));
ii := ii + 1;
goto return2;
end;
Und daher einfach die zahlen von 0 - i überprüft

Aber wenn ich ja einen eintrag lösche dan existiert 0 zb nicht mehr und es beginnt bei 1 worauf ein LISTBox Platz leer ist
und mit einem Error versehen wird.

Ich bin echt am verzweifeln weill ich keine idee habe wie ich das problem lösen könnte.

Am besten wäre es wenn es das INI File automatisch neu Ordnet also zb so

Vorher:

0
4
7
10

Nachher:

0
1
2
3

Doch wie ich das hinbekommen könnte habe ich keine ahnung

Ich bitte um hilfe

Vielen dank bereits jetzt schon

Liebe grüsse
Claudio

Andreas H. 30. Dez 2006 17:44

Re: Sehr Schwierige Frage ;-) INI Musik Datenbank
 
Hallo,


oh je, kennst Du denn kein
Delphi-Quellcode:
repeat .. until
Das mit dem GOTO braucht man in Delphi wirklich nicht!!

Wenn Du Deine Liste erst abspeicherst, wenn dass Programm beendet wird oder per Menü/Button-Aktion, kannst Du die Einträge neu nummerieren und wenn Du ne Abfrage einbaust, hast Du ein simples Undo :wink:

Oder Du schreibst immer alle Einträge - natürlich neu nummeriert - nach einem Löschvorgang.

Die Methode TIniFile.ReadSections liest übrigens alle Sektionen der Ini-Datei in eine Stringliste ein. Die kannst Du beim Laden abklappern!

Gruß Andreas

hedie 30. Dez 2006 17:47

Re: Sehr Schwierige Frage ;-) INI Musik Datenbank
 
Also das mit dem Repeat ... Until kenne ich noch nicht.


Ich bin frogh das du ne idee hast.

Könntest du mir ein klein wenig beispiel Code Posten?

hedie 30. Dez 2006 18:11

Re: Sehr Schwierige Frage ;-) INI Musik Datenbank
 
Vielen vielen dank


Es hat suuuper geklappt

Sie wissen gar nicht wie sehr sie mir geholfen haben :D

und die repeat until funktion habe ich auch gerade gelernt :D


Es lädt nun die Liste aus der Datenbank und Speichert sie erst am schluss aber erstellt sie neu also neue nummerierung.

Andreas H. 30. Dez 2006 19:13

Re: Sehr Schwierige Frage ;-) INI Musik Datenbank
 
Hallo,

freut mich, dass Du es alleine so schnell geschafft hast! :thumb:

Ich habe noch nie GOTO benutzt. :coder:

In der Delphi-Hilfe steht einiges über Schleifen-Konstrukte:
  • for-Schleife
  • repeat..until-Schleife
  • while-Schleife

Schleifen kann man übrigens mit break abbrechen und mit continue weiterschalten.

Gruß Andreas


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:40 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