Einzelnen Beitrag anzeigen

Benutzerbild von Christoph
Christoph

Registriert seit: 23. Jan 2004
Ort: Heidelberg
48 Beiträge
 
Delphi 6 Personal
 
#5

Re: Suchfilter für Strings mit Combobox(en) realisieren

  Alt 18. Aug 2004, 21:00
Hallo,

das Problem mit den Comboboxen habe ich gelöst. Offen ist nur noch die Frage mit dem Ausdünnen des Arrays.

Ich versuche mal, das Problem etwas genauer zu erklären.

Ich schreibe ein Verwaltungsprogramm für ein Kartenspiel (Starwars). Es gibt viele verschiedene Sorten von Karten.
ZB. einen Charakter. Der sieht in meinem csv-file so aus (stark gekürzt):

Luke Skywalker;Character;Power:3 Ability:4;Pilot;Son of Anakin Skywalker. Student of Obi-Wan Kenobi.

Also Name, Art, bestimmte Werte, Pilot oder nicht, bestimmter Text.
Jeder Charakter hat bestimmte Werte. Daneben gibt es noch mehrere verschiedene Sorten Karten, die in den Feldern des csv-files andere Werte stehen haben (es stehen also nicht immer die gleichen Arten von Werten in den Feldern - das hardkodieren ist daher wohl nicht möglich).

Insgesamt sind es knapp 2800 Karten, die ich in ein Array of Record einlese. Damit kann ich dann zB. mittels Card[i].Name auf den Namen des Characters zugreifen. Genauso auf Card[i].Power usw.

Ich habe alle 2800 Karten in einer Listbox aufgelistet. Nun möchte ich diese Karten nach bestimmten Kriterien filtern.

Beispiel: Alle Karten, die ein Charakter sind.

Ich gehe das Array of Record durch und speichere alle Treffer in ein temporäres Array.
Das funktioniert einwandfrei.

Jetzt wirds aber erst interessant:
Die so gefundene Treffermenge soll wiederum auf ein bestimmtes Kriterium gefiltert werden. ZB. alle Charakter, die Power = 3 haben.

Jetzt soll das vorhandene temporäre Array weiter nach diesem Kriterium ausgedünnt werden. Es sollen alle Karten entfernt werden, deren Power-Wert nicht 3 ist.

Ein weiteres temporäres Array hilft nicht weiter, denn ich könnte ja auch zuerst nach Power = 3 filtern und danach nach Charakter. Es muss also bei diesem einen temporären Array bleiben. Mittlerweile bin ich bei 18 verschiedenen Kriterien.

Wie kann ich aus diesem Array bestimmte Einträge herausschmeissen?

Ist die Frage nun verständlicher?

Danke und Gruß,
Christoph
'Bist 900 Jahre alt wirst aussehen Du nicht gut!'
  Mit Zitat antworten Zitat