Ich könnte doch bestimmt auch den leicht versteckten Compilerschalter suchen und den Index wieder auf eins umschalten.
Aber nein, so weit geh ich dann doch nicht. (Lösung 4)
[add]
{$ZEROBASEDSTRINGS OFF}
[edit] Ich schau gleich mal, was bei
{$ZEROBASEDSTRINGS ON}
im Windows-Compiler passiert. (Lösung 5)
[edit2] Char-Helper und {$ZEROBASEDSTRINGS} stammen doch aus XE3? Hmmm, wenn sich noch eine "ordentliche" Lösung
Char IN [...]
findet, dann könnte man sich fast einfach mal überlegen einfach XE3 als Minimum-Support festzulegen.
Wenn man nun für NextGen kompiliert, fällt auch gleich auf, daß die Sache mit dem CharInSet auch schonwieder anders ist.
Wobei CharInSet intern komischer Weise
genau das Selbe gemacht hat, wie das, was man damit ersetzen sollte.
Jetzt soll man den Char-Helper benutzen, aber ich glaub ich bin zu blöd ... ich finde dort keinen Ersatz dafür.
(nein IsInArray ist keine Lösung)
Meine Lösungen ist
if Ord(P^) in [Ord('a')..Ord('z'), Ord('A')..Ord('Z'), Ord('_')] then ...
. Es funktioniert ganz genauso und bringt keine nervige Meldung.
Oder ich benutze
case P^ of 'a'..'z', 'A'..'Z', '_': ...; end;
.