Und das ganze noch ein bisschen verbessert, da bei Detlefs Lösung nur exakte Strings gefunden werden:
Delphi-Quellcode:
type TDynIntArray = array of Integer;
procedure SearchSubString(const s, //gesuchter String
Sep: string; //Trennstring
const sList: TStrings; //Liste
var ResultArr: TDynIntArray); // Trefferpositionen
var
i, max: integer;
ItemStr: String;
begin
i := 0;
max := sList.Count;
SetLength(ResultArr, 0);
while (i < max) do
begin
ItemStr := sList[I];
ItemStr := Copy(ItemStr, 1, Pos(Sep, ItemStr));
if Pos(s, ItemStr) > 0 then
begin
SetLength(ResultArr, Length(ResultArr) + 1);
Resultarr[High(ResultArr)] := I;
end;
inc(i);
end;
end;