blikk info infothek forum galerie sitemap

Eliminieren von unnötigen Blanks

anfang zurueck weiter ende nach oben
                                                                                                  von Alexander E.

g) Eliminieren von unnötigen Blanks

In einem String stehen häufig unnötige Blanks. Zwei Blanks hintereinander oder ein Blank am Anfang oder am Ende ist unnötig. Folgendes Programm löscht diese unnötigen Blanks.

 

PROGRAM Blanks;

(********************************************************************)
{Folgende Prozedur loescht Blanks, welche am Anfang oder am Ende des Strings stehen}

PROCEDURE loesch (VAR zkette : STRING);

BEGIN
   IF zkette[1] = ' ' THEN
      Delete (zkette, 1, 1);

   IF zkette[length(zkette)] = ' ' THEN
      Delete (zkette, (length(zkette) ), 1);
END;

(*********************************************************************)

{Folgende Funktion löscht alle unnötigen Blanks}

FUNCTION unnoetig (zkette: STRING): STRING;

VAR
     i:  INTEGER; {Laufvariable fuer WHILE-Schleife}

BEGIN
    i := 1;
   WHILE i < length(zkette) DO BEGIN
       IF (zkette[i]=' ') AND (zkette[i+1]=' ')THEN  BEGIN
           Delete (zkette, i, 1);
       END
       ELSE
           i := i + 1;
        END;
    unnoetig:=zkette;
END;

(**********************************************************************)

{Beginn des Hauptprogrammes}

VAR
      zkette: STRING;    {zu bearbeitende zeichenkette}

BEGIN
    {Abfragen und Einlesen der Zeichenkette}
     WriteLn('Geben Sie Ihre Zeichenkette ein um Sie von unnoetigen');
     WriteLn('Blanks zu befreien...');
     ReadLn(zkette);              
     loesch(zkette);               {Aufrugen der loesch-Prozedur}
     zkette:=unnoetig(zkette);     {Aufrufen der unnoetig-Funktion}
     Write(zkette);                {Ausgabe des bearbeiteten Strings}
      ReadLn
END.
nach oben