Oder man nutzt die Funktion
StrUtils.IndexText
. Damit kann man bequem ein case nutzen und das ganze ist auf Wunsch (IndexText <-> IndexStr) auch noch case-insensitive.
Was die n-1 if's angeht: Würde bei sowas nicht die Compileroptimierung zuschlagen? Es dürfte
imho durchaus erkennbar sein, dass im jeweiligen Scope nur ein Pfad erfolgreich ist und der Rest ignoriert werden kann.