Hallo,
ist das wirklich soviel schneller? Die Listenelemente sind doch schon ein array mit Pointer. Ob der anfängliche Aufwand sich rechnet?
Delphi-Quellcode:
function SeekStrings(List: TStringList;strs: TStringList): TStringList;
var
i,j,k: integer;
TmpStr : String;
tmp: TStringList;
begin
tmp:=TStringList.Create;
for i:=0 to strs.Count-1 do begin
k:=0;
TmpStr := strs[i];
for j:=0 to List.Count-1 do begin
if pos(TmpStr,List[j])>0 then
Inc(k);
end;
tmp.Add(IntToStr(k));
end;
TmpStr := '';
Result:=tmp;
end;
Wie so oft hilft das FastCode Project
http://fastcode.sourceforge.net/ dort
http://fastcode.sourceforge.net/chal...ntent/Pos.html
Pos_JOH_IA32_6 ist über alle Plattformen das schnellste ~ 3 fach.
Und natürlich die längere Liste in der aüßeren schleife.
Gruß Horst