Low(string)
liefert auch den passenden StartIndex.
So wie es Low(S) und High(S) auf einer String-Variable tun.
Man könnte auch den StingHelper nutzen.
Die Methoden daran sind immer 0-basierend.
S.Chars[i]
statt
S[i]
(auch wenn ich es funktionell eher bissl Krank empfinde, mit einem Funktionsaufruf dazwischen)
oder
S.Length
statt
Length(S)
.
Demo aus
TStringHelper.Chars :
Delphi-Quellcode:
var
I: Integer;
MyString: String;
begin
MyString := 'This is a string.';
for I:= 0 to MyString.Length - 1 do
Write(MyString.Chars[I]);
end.