[Back to FILES SWAG index]  [Back to Main SWAG index]  [Original]

{
> A friend of mine has a small problem with Binkley connecting, and whenever
> this happens, Binkley writes a bunch of Line noise characters in his log f
> Some of these characters are EOF and EOL markers. I am trying to write a s
> program that will read it, and write the contents to a new file, without a
> the garbage in it. Of course, when I get to the first EOF, my program thin
> it's done.
}

Program KillChar;

{ Written by Tom Carroll and released to the public domain
  on 12/11/93.

 This program will read any file and delete any characters passed on
  the command line.

  For example:  KillChar InFile OutFile ASCII Value (of character)

         i.e.:  KILLCHAR MYFILE.TXT NEWFILE.TXT 12

  This will remove all form feeds from a text file.

  No error control is included.

}

VAR
   Buffer    : ARRAY[0..255] OF Char;
   TmpString,
   StringVar : STRING;
   FileLoc,
   NumBytes  : LongInt;
   InFile,
   OutFile   : FILE;
   NumRead   : Integer;
   StringPos : Integer;

BEGIN
   Val(ParamStr(3), NumRead, StringPos);
   TmpString := Chr(NumRead); {#26;}
   Assign(InFile, ParamStr(1));
   Reset(InFile, 1);
   Assign(OutFile, ParamStr(2));
   Rewrite(OutFile, 1);
   NumBytes := FileSize(InFIle);
   WHILE FilePos(InFile) < NumBytes DO
      BEGIN
         FileLoc := FilePos(InFile);
         IF FileLoc < (NumBytes - 255) THEN
            BlockRead(InFile, Buffer, 255, NumRead)
         ELSE
            BlockRead(InFile, Buffer, FileSize(InFile) - FileLoc,
                      NumRead);
         Move(Buffer[0], StringVar[1], NumRead);
         StringVar[0] := Chr(NumRead);
         StringPos := Pos(TmpString, StringVar);
         WHILE StringPos > 0 DO
            BEGIN
               StringPos := Pos(TmpString, StringVar);
               Delete(StringVar, StringPos, 1);
            END;
         StringPos := Length(StringVar);
         Move(StringVar[1], Buffer, Length(StringVar));
         BlockWrite(OutFile, Buffer, Length(StringVar));
      END;
   Close(InFile);
   Close(OutFIle);
END.

[Back to FILES SWAG index]  [Back to Main SWAG index]  [Original]