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