Wenn man mit Strings so arbeitet, wie man es in Delphi normalerweise macht, dann ist ein +1 oder -1 unsinnig. Wo das zum Einsatz kommen kann, ist bei der PChar-Variante, bei der ein String (vereinfacht gesagt) als Zeiger auf einen Punkt im Speicher verwaltet wird. Diesen Zeiger kann man erhöhen oder verringern - jedoch sollte man hier nicht mit "+1" arbeiten, um das nächste Zeichen zu bekommen, sondern mit SizeOf(Char) - weil ein Zeichen in der Regel zwei Bytes groß ist.
Aber diese Form der Stringverarbeitung braucht man bei Delphi normalerweise nicht.
Zu deinem Code: Der funktioniert vorne und hinten nicht. Deine While-Schleife ist im Zweifel auch eine Endlosschleife. Ich vermute, dass du hier "if" meinst. Falls du die Anzahl der Zeichen in dem String zählen willst, die keine Leerzeichen sind, dann würde ich das so machen:
Delphi-Quellcode:
Anzahl := 0;
For i := 1 to length(s) do begin
if s[i] <> ' ' then
Inc(Anzahl);
end;
Edit: Kann es sein, dass du C-Code vor dir hast, den du nach Delphi umschreiben willst? Das sieht ein wenig danach aus ...
The angels have the phone box.