Ja, beginnt bei 1 (seit
Kurzem auch wieder ÜBERALL, auch wenn man für Android/iOS kompiliert)
{$ZeroBasedStrings OFF} ist der DFAULT
Grund siehe ShortString -> auf Adresse 0 lag das Längen-Byte.
Also ohne -1, für das letzte Zeichen.
Delphi-Quellcode:
if EndsStr(',', MyString) then
Delete(MyString, Length(MyString), 1);
// außer für "bis vor das letzte Zeichen"
MyString := LeftStr(MyString, Length(MyString)-1); // ebenfalls beim COPY
Copy
LeftStr
RightStr
MidStr
Delete
EndsStr
EndsText
oder
StringHelper: (die zählen ab 0)
Substring
Remove
EndsWith
EndText