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

    {
    MATT GIWER

    It is designed to clean up Files you might wish to capture from Real time
    chat.  It gets rid of all those back spaces and recreates a readable File
    that appears as though no typos were made by anyone.

    {$M 65520,0,655360 }
    Program capture_strip;

    Uses
      Dos, Crt;

    Const
      copyright : String[80] =
                    'copyright 1988 and 1991 by Matt Giwer, all rights reserved';
      name : String[20] = 'CAPture CLeaN ';
      ver  : String[5]  = '1.2';

    Var
      in_File,
      out_File    : Text;
      in_name,
      out_name    : String[30];
      in_String,
      out_String  : String[250];
      i, k, l     : Integer;
      ch          : Char;
      count       : Integer;
      Files       : Array[1..50] of String[20];
      in_Array,
      out_Array   : Array[1..100] of String[250];
      Array_count : Byte;

    Procedure clear_Strings;
    Var
      i : Byte;
    begin
      for i := 1 to 100 do
      begin
        in_Array[i]  := '';
        out_Array[i] := '';
      end;
    end;

    Procedure strip_File;
    begin
      For l := 1 to Array_count do
      begin
        out_String := '';
        in_String  := in_Array[l];
        For i := 1 to length(in_String) do
        {if it is any except a backspace then add it to the output String}
        begin
          if ord(in_String[i]) <> 8  then
            out_String := out_String + in_String[i];
          {if it is a backspace than the intention was to remove the last Character
          in the String that was added above.  Thus the BS is a signal to remove the
          last Character added above.}
          if ord(in_String[i]) = 8 then
            delete(out_String, length(out_String), 1);
        end;
        While (out_String[length(out_String)] = ' ') do
          delete(out_String, length(out_String), 1);
        out_Array[l] := out_String;
      end;
    end;

    Procedure fill_Array;
    begin
      While not eof(in_File) do
      begin
        clear_Strings;
        Array_count := 1;
        While (not eof(in_File) and (Array_count < 100) ) do
        begin
          readln(in_File, in_Array[Array_count]);
          Array_count := Array_count + 1;
        end;
        strip_File;
        For l := 1 to Array_count do
          Writeln(out_File, out_Array[l]);
      end;
    end;

    begin
      Writeln(name,ver);
      Writeln(copyright);
      For count := 1 to 50 do
        Files[count] := '                    ';
      clear_Strings;
      Writeln;
      if paramcount < 1 then {if command line empty}
      begin
        Writeln('Only Filenames are accepted, no extenders');
        Writeln('Output File will be  .CLN');
        Write('Enter File name.  '); readln(in_name);
      end
      else   {else get an Array of the parameters}
      begin
        For i := 1 to paramcount do
          Files[i] := paramstr(i)  {! count vice i}
      end;
      if paramcount < 1 then
      begin
        assign(in_File, in_name);
        reset(in_File);
        assign(out_File, in_name + '.CLN');
        reWrite(out_File);
        Write('Working on ', in_name:20);
        fill_Array;
        Writeln;
      end
      else
      begin
        For count := 1 to paramcount do
        begin
          in_name := paramstr(count);
          assign(in_File, in_name);
          reset(in_File);
          assign(out_File, in_name + '.CLN');
          reWrite(out_File);
          Write('Working on ', paramstr(count):20);
          fill_Array;
          Writeln;
          close(in_File);
          close(out_File);
        end;
      end;
    end.

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