Ich hab mir mal System._UStrPos in Delphi 12 angeschaut und wenn ich nicht komplett auf dem Holzweg bin, dann ist die Erweiterung mit einigen wenigen Anpassungen erledigt. Defaultwert von Count ist MaxInt
Hier mal der relevante Ausschnitt
Delphi-Quellcode:
begin
-
if (Str =
nil)
or (SubStr =
nil)
or (Offset < 1)
then
+
if (Str =
nil)
or (SubStr =
nil)
or (Offset < 1)
or (Count < 1)
then
goto Exit0;
// fast access to length - did the nil check already
lenSub := PInteger(SubStr)[-1];
Dec(lenSub);
len := PInteger(Str)[-1];
+
Dec(Offset);
+ Cardinal(Count) := Cardinal(Count) + Cardinal(Offset);
+
if Cardinal(len) > Cardinal(Count)
then len := Count;
-
if (len < lenSub + Offset)
then
+
if (len <= lenSub + Offset)
then
goto Exit0;
Stop := @Str[len];
Str := @Str[lenSub];
SubStr := @SubStr[lenSub];
Start := Str;
- Str := @Str[Offset + 3];
+ Str := @Str[Offset + 4];