DEV Community

Discussion on: Daily Challenge #206 - Pound Means Backspace

Collapse
 
patricktingen profile image
Patrick Tingen • Edited

Progress 4GL

FUNCTION cleanString RETURNS CHARACTER
  (pcString AS CHARACTER):

  DEFINE VARIABLE i AS INTEGER   NO-UNDO.
  DEFINE VARIABLE c AS CHARACTER NO-UNDO.

  DO i = 1 TO LENGTH(pcString):
    CASE SUBSTRING(pcString,i,1):
      WHEN '#' THEN IF c > '' THEN c = SUBSTRING(c, 1, LENGTH(c) - 1).
      OTHERWISE c = c + SUBSTRING(pcString,i,1).
    END CASE. 
  END.

  RETURN c.
END FUNCTION. 

MESSAGE cleanString("abc#def##ghi###") = "abd" 
   SKIP cleanString("abc#d##c") = "ac"
   SKIP cleanString("abc##d######") = ""
   SKIP cleanString("#######") = ""
   SKIP cleanString("") = ""
   VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.