Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
880 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: String Manipulation

  Alt 5. Jan 2023, 10:00
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.

Geändert von Gausi ( 5. Jan 2023 um 10:04 Uhr)
  Mit Zitat antworten Zitat