home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 03 / tricks / clean.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1990-12-10  |  2.7 KB  |  89 lines

  1. (* ------------------------------------------------------ *)
  2. (*                      CLEAN.PAS                         *)
  3. (*  Filtert Steuerzeichen und Textformatierung aus Text-  *)
  4. (*  dateien heraus.                                       *)
  5. (*            (c) 1991 Olaf Heß & TOOLBOX                 *)
  6. (* ------------------------------------------------------ *)
  7. PROGRAM Clean;
  8.  
  9. USES Crt;
  10.  
  11. TYPE
  12.   ASCII = SET OF CHAR;
  13.  
  14. CONST
  15.   Tab             = ('        ');   (* 8 Leerzeichen *)
  16.   Zeichen : ASCII = [#10 {LF}, #13 {CR}, #26 {EOF},
  17.                      #32 {Space},
  18.                      'ä', 'ö', 'ü', 'Ä', 'Ö', 'Ü', 'ß'];
  19.  
  20. VAR
  21.   EinZeichen, AusZeichen, Abfrage : CHAR;
  22.   EinDatei, AusDatei              : Text;
  23.   EinDateiName, AusDateiName      : STRING [12];
  24.   SonderZeichen                   : ASCII;
  25.   ZeichenNr                       : BYTE;
  26.  
  27. BEGIN
  28.   WriteLn;
  29.   IF ParamCount = 0 THEN BEGIN
  30.     WriteLn('CLEAN filtert Steuerzeichen und Textforma' +
  31.             'tierungen aus Textdateien heraus');
  32.     WriteLn;
  33.     Write('Dateiname (Eindatei): ');
  34.     ReadLn(EinDateiName);
  35.     Write('Dateiname (Ausdatei): ');
  36.     ReadLn(AusDateiName);
  37.   END ELSE BEGIN
  38.     IF ParamCount <> 2 THEN BEGIN
  39.       WriteLn('Syntax: CLEAN [Eindatei] [Ausdatei]');
  40.       Halt(1);
  41.     END ELSE BEGIN
  42.       EinDateiName := ParamStr (1);
  43.       AusDateiName := ParamStr (2);
  44.       IF EinDateiName = AusDateiName THEN BEGIN
  45.         WriteLn('Fehler: EinDateiName = AusDateiName');
  46.         Halt(1);
  47.       END;
  48.     END;
  49.   END;
  50.   Assign(EinDatei, EinDateiName);
  51.   Assign(AusDatei, AusDateiName);
  52.   Reset(EinDatei);
  53.   IF IOResult <> 0 THEN BEGIN
  54.     WriteLn('Fehler beim Öffnen der Datei »', EinDateiName,
  55.             '« - Programmabbruch!');
  56.     Halt(1);
  57.   END;
  58.   Reset(AusDatei);
  59.   IF IOResult = 0 THEN BEGIN
  60.     REPEAT
  61.       WriteLn;
  62.       WriteLn('Die Zieldatei existiert schon!');
  63.       WriteLn('Soll sie überschrieben werden (J/N)?');
  64.       Abfrage := ReadKey;
  65.     UNTIL (Abfrage IN ['J', 'j', 'N', 'n']);
  66.     IF Abfrage IN ['J', 'j'] THEN
  67.       Rewrite(AusDatei)
  68.     ELSE Halt;
  69.   END ELSE
  70.     Rewrite(AusDatei);
  71.   SonderZeichen := Zeichen;
  72.   REPEAT
  73.     Read(EinDatei, EinZeichen);
  74.     IF (EinZeichen IN SonderZeichen) THEN
  75.       Write(AusDatei, EinZeichen)
  76.     ELSE BEGIN
  77.       ZeichenNr := Ord(EinZeichen);
  78.       IF (ZeichenNr > 32) AND (ZeichenNr < 127) THEN
  79.         Write(AusDatei, EinZeichen)
  80.       ELSE
  81.         (* IF (ZeichenNr = 8) THEN Write(AusDatei, Tab); *)
  82.     END;
  83.   UNTIL EoF(EinDatei);
  84.   Close(EinDatei);
  85.   Close(AusDatei);
  86. END.
  87. (* ------------------------------------------------------ *)
  88. (*                   Ende von CLEAN.PAS                   *)
  89.