Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Array gezielt nach Einträge durchsuchen


Delete - Mo 20.04.09 16:45
Titel: Array gezielt nach Einträge durchsuchen
Hallo zusammen,
Ich habe ein mehrdimensionales Array in dem ich zum Beispiel Auftragnummern, Personalnummern, Positionsnummern, Stunden gespeichert habe.

Nun möchte ich wie bei einer MySQL-Datenbank das Array gezielt auslesen.
Bei MySQL gibt es ja den Befehl "Select * From Datenbank WHERE Positionsnummer=3".
Also einfach einen Befehl/ Funktion oder etwas in die Richtung, mit der ich meine Einträge im Array gezielt nach einem bestimmten Wert auslesen kann.

Habe schon gesucht aber irgendwie noch nicht das gefunden, was ich brauch.

Danke


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mo 20.04.2009 um 18:20


jakobwenzel - Mo 20.04.09 17:01

was vordefiniertes gibt es da meines Wissens nicht.
Letztendlich wird es aber darauf hinauslaufen dass du in einer Schleife alle Werte durchläufst und jeweils guckst ob der Wert passt.
Wenn das zu langsam ist kannst du erstmal nach dem Wert sortieren, was aber schwierig ist, wenn du mehrere Werte prüfen musst. Alternativ kannst du für eine Spalte alle möglichen Werte in einem Array speichern und dazu dann alle Einträge der Originaltabelle, also sowas:

Delphi-Quelltext
1:
2:
3:
4:
5:
TIndexEntry = record
  value:TXYZ;
  references:array of Integer; //Referenz zur Originaltabelle
end;
Indices:array of TIndexEntry

Damit bist du dann auf dem besten Wege dir deine eigene Datenbank zu schreiben - viel Glück :D


DaVinciFF7 - Mo 20.04.09 21:33

Mach es doch mit ner For-Schleife
Hab jetzt gerade nur die Java Syntax im Kopf, aber wenn ich mich recht erinnere ist es in Pascal ähnlich

Bei Java sieht das so aus:


Quelltext
1:
2:
3:
int i;

for (i := 0; i < array.length; i++)

und dann halt ne if klammer

Quelltext
1:
2:
if array[i] = gesucht
     blablubb


Wie gesagt..Ich weiß nicht, ob die Syntax stimmt, aber vom Prinzip her ist es so glaub ich am einfachsten.


ffgorcky - Fr 01.05.09 15:50

Hallo Dyon,

die Spalten kannst Du ja - soweit ich mich recht erinnere - mit "case of" zuordnen:

Delphi-Quelltext
1:
2:
3:
case momentanGefragteSpalte of 
3:SpaltenName:='Positionsnummer'
4:SpaltenName:='Name'