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

    {
    For those who are active in other nets than fidonet, and who regularly get a
    new small nodelist as an update, this little program gets rid of all but the
    latest nodelists, allowing the whole process to be handled by a simple batch
    file.Easily adaptable to the names of your nodelists, see last lines.
    }

    Program clean;
    {$M 16384,80000,80000}

    Uses Dos,Crt;

    TYPE
      Line     = string[80];
      Lines    = ARRAY[1..100] OF Line;
      LinesP   = ^Lines;

    var
      Dirbuf   : LinesP;
      Index,Number,i,j:integer;
      dirinfo:SearchRec;
      filetime:array[1..100] of longint;
      latest:longint;
      f:file;

    Procedure remove(s:string);

    Begin
    New(Dirbuf);
    Number:=0;
      FindFirst(s+'.*', Anyfile, DirInfo);
        while DosError = 0 do
         begin
          if (Dirinfo.name[1] <> '.') AND (dirinfo.attr<>16) then
              {attribute 16 would be directory file}
                begin
          inc(Number);
          Dirbuf^[Number]:=Dirinfo.name;
          filetime[Number]:=Dirinfo.time;
                end;

          FindNext(DirInfo);
         end;

    if Number<2 then {only one nodelist.nnn found, do nothing.}
                Begin
                dispose(dirbuf);
                exit;
                End;

    latest:=filetime[1]; {you have to start somewhere}

    for i:=1 to Number do if filetime[i]>=latest then
                       Begin
                       latest:=filetime[i];
                       Index:=i;
                       End;
    {Index now points to the newest file, so this is the one
     that we should NOT erase!}
    for i:=1 to Number do if i<>Index then
     Begin
      assign(f,DIRBUF^[I]);
      erase(f);
     End;

    Dispose(Dirbuf);

    end;

    Begin {OF MAIN PROGRAM}
    remove('TATTLE');
    remove('22NET-NL');
    remove('NODELIST');
    End.

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