Thema: Delphi 2 Arrays Sortieren

Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: 2 Arrays Sortieren

  Alt 24. Mai 2006, 20:49
Hi,

ich verstehe nur Bahnhof - liegt das jetzt an mir?

Du hast Datenpaare (Integer, String), die du über zwei SELECT Statements besorgst, wobei du die ORDER Klausel nicht verwenden kannst und die Informationen auch nicht durch einen JOIN in einer einzigen Abfrage beschafft werden können (strange). Ich denke hier sollten wir ansetzen, aber ohne Betrachtung der Genese können wir auch einfach die Daten akzeptieren. Eine Speicherung in zwei verschiedenen Arrays ist nicht nötig. Du könntest die Daten z.B. in einer StringList speichern:

Delphi-Quellcode:
function CompareObject(list: TStringList; index1, index2: Integer): Integer;
begin
  index1 := Integer(list.Objects[index1]);
  index2 := Integer(list.Objects[index2]);
  Result := index1 - index2;
end;

var
  sl: TStringList;
  s: String;
  i, iZahl: Integer;
begin
  sl := TStringList.Create;
  
  // Daten besorgen
  for i := 1 to Query.RecordCount do
  begin
    s := FieldByName('DeinString').AsString,
    iZahl := FieldByName('DeineInteger').AsInteger;
    sl.AddObject(s, Pointer(iZahl));
  end;

  sl.CustomSort(CompareObject);

  // Daten verwerten
  sl.Free;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat