Thema: Delphi Listbox vergleichen

Einzelnen Beitrag anzeigen

Benutzerbild von Uncle Cracker
Uncle Cracker

Registriert seit: 30. Mär 2003
Ort: Freital
694 Beiträge
 
#1

Listbox vergleichen

  Alt 31. Okt 2007, 22:17
Hey Leute,
ich stehe vor einem "großem" Problem und zwar:

Ich habe zwei Listboxen (bzw. StringListen) und würde diese gern auf den selben Inhalt vergleichen und die selben dann in eine neue ListBox speichern...

Das ist jetzt nicht das Problem, nur sind die Strings in den beiden ListBoxen nicht gleich, sondern nur annähernd.

Beispiel:

Listbox1-Inhalt:

07-1695
07-2488
07-0054
07-1454
...


Listbox2-Inhalt:

07-2545_Test1
07-6894_Test2
07-1695_Test3
07-0654_Test4
...


Jetzt würde ich gern den die Anfangszahlen von Listbox1 mit dem Inhalt von Listbox2 vergleichen und identische in Listbox3 speichern, nur habe ich ein riesiges Performanceproblem, wenn ich das mit zwei For-Schleifen löse, da es über 10000 Einträge in Listbox1 und über 2000 Einträge in Listbox2 sind...

Ich habe mich schon anders dran versucht, nur gelange ich so nicht an ein Ergebnis:

Delphi-Quellcode:
function GetJobID(s: string): string;
begin
  Result := copy(s, 0, 7);
end;

procedure IntersectStrings(sResult, s1, s2: TStrings);
var
  i: Integer;
begin
  sResult.BeginUpdate;
  sResult.Clear;
  for i := 0 to Pred(s1.Count) do
    if s2.IndexOf(GetJobID(s1[i])) >= 0 then
      sResult.Add(s1[i]);
  sResult.EndUpdate;
end;
Jemand sonst einen Vorschlag wie ich das lösen könnte!?


Danke UC
I wish it was legal to marry software because I'm madly in love with Delphi...
  Mit Zitat antworten Zitat