Einzelnen Beitrag anzeigen

Benutzerbild von runningsoft
runningsoft

Registriert seit: 8. Okt 2004
Ort: Bernau
108 Beiträge
 
Delphi 10.4 Sydney
 
#21

AW: Erstellung einer Funktion

  Alt 4. Jun 2021, 09:17
Kanns grad nicht testen, aber in deiner repeat - Schleife löschst Du ein Zeichen deines Strings wenn es sich um eine Ziffer handelt und verkürzt anschließend deinen Zähler (run) trotzdem noch um 1. Somit überspringst du für den Fall, dass du bereits vorher eine Ziffer gelöscht hast, ein Zeichen in deinem string.
Delphi-Quellcode:
while endNotFound do
 begin
    repeat
      case s[run] of
        '0' .. '9': delete(s,run,1);
      end;
      dec(run);
    until run = 0 ;
   endNotFound := TRUE;
   end;
Ich würde das ganze mit einer for..do - Schleife lösen
Delphi-Quellcode:
for i = length(s) downto 0 do
  begin
  //prüfe hier, ob das betreffende Zeichen eine Ziffer ist, wenn ja. lösche es
  //damit prüfst du tatsächlich alle Zeichen deines Strings und überspringst durch das löschen keines
  end
Wie gesagt, ungetestet.

Edit:
Mist, zu langsam getippt
  Mit Zitat antworten Zitat