home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* CLEAN.PAS *)
- (* Filtert Steuerzeichen und Textformatierung aus Text- *)
- (* dateien heraus. *)
- (* (c) 1991 Olaf Heß & TOOLBOX *)
- (* ------------------------------------------------------ *)
- PROGRAM Clean;
-
- USES Crt;
-
- TYPE
- ASCII = SET OF CHAR;
-
- CONST
- Tab = (' '); (* 8 Leerzeichen *)
- Zeichen : ASCII = [#10 {LF}, #13 {CR}, #26 {EOF},
- #32 {Space},
- 'ä', 'ö', 'ü', 'Ä', 'Ö', 'Ü', 'ß'];
-
- VAR
- EinZeichen, AusZeichen, Abfrage : CHAR;
- EinDatei, AusDatei : Text;
- EinDateiName, AusDateiName : STRING [12];
- SonderZeichen : ASCII;
- ZeichenNr : BYTE;
-
- BEGIN
- WriteLn;
- IF ParamCount = 0 THEN BEGIN
- WriteLn('CLEAN filtert Steuerzeichen und Textforma' +
- 'tierungen aus Textdateien heraus');
- WriteLn;
- Write('Dateiname (Eindatei): ');
- ReadLn(EinDateiName);
- Write('Dateiname (Ausdatei): ');
- ReadLn(AusDateiName);
- END ELSE BEGIN
- IF ParamCount <> 2 THEN BEGIN
- WriteLn('Syntax: CLEAN [Eindatei] [Ausdatei]');
- Halt(1);
- END ELSE BEGIN
- EinDateiName := ParamStr (1);
- AusDateiName := ParamStr (2);
- IF EinDateiName = AusDateiName THEN BEGIN
- WriteLn('Fehler: EinDateiName = AusDateiName');
- Halt(1);
- END;
- END;
- END;
- Assign(EinDatei, EinDateiName);
- Assign(AusDatei, AusDateiName);
- Reset(EinDatei);
- IF IOResult <> 0 THEN BEGIN
- WriteLn('Fehler beim Öffnen der Datei »', EinDateiName,
- '« - Programmabbruch!');
- Halt(1);
- END;
- Reset(AusDatei);
- IF IOResult = 0 THEN BEGIN
- REPEAT
- WriteLn;
- WriteLn('Die Zieldatei existiert schon!');
- WriteLn('Soll sie überschrieben werden (J/N)?');
- Abfrage := ReadKey;
- UNTIL (Abfrage IN ['J', 'j', 'N', 'n']);
- IF Abfrage IN ['J', 'j'] THEN
- Rewrite(AusDatei)
- ELSE Halt;
- END ELSE
- Rewrite(AusDatei);
- SonderZeichen := Zeichen;
- REPEAT
- Read(EinDatei, EinZeichen);
- IF (EinZeichen IN SonderZeichen) THEN
- Write(AusDatei, EinZeichen)
- ELSE BEGIN
- ZeichenNr := Ord(EinZeichen);
- IF (ZeichenNr > 32) AND (ZeichenNr < 127) THEN
- Write(AusDatei, EinZeichen)
- ELSE
- (* IF (ZeichenNr = 8) THEN Write(AusDatei, Tab); *)
- END;
- UNTIL EoF(EinDatei);
- Close(EinDatei);
- Close(AusDatei);
- END.
- (* ------------------------------------------------------ *)
- (* Ende von CLEAN.PAS *)