English
English
Slovensky
Slovensky
Česky
Česky
©ari¹sky
©ari¹sky
Kategorija: Programy zos Pascalu (KMP)

Zrobil: Roman Mik
Program: Redfox.pas
Subor exe: Redfox.exe
Upravena verzia www.trsek.com/cover/benkovic/find. Nahrada prikazu find pre operacny system DOS. Prehladava disk aby nasiel umiestnenie zadaneho suboru. Vysledok zapise do textoveho suboru. Obsahuje prepinace. Ak sa nezada ziaden prepinac zobrazi sa help programu.
Kuklo ¹e: 786x


{ REDFOX.PAS                                Copyright (c) Roman Mik }
{ Nahrada prikazu find pre operacny system DOS. Prehladava disk     }
{ aby nasiel umiestnenie zadaneho suboru. Vysledok zapise do        }
{ textoveho suboru. Obsahuje prepinace. Ak sa nezada ziaden         }
{ prepinac zobrazi sa help programu.                                }
{ Upravena verzia http://www.trsek.com/cover/benkovic/find          }
{                                                                   }
{ Datum:24.07.2008                             http://www.trsek.com }
 
{$I-}
uses crt,dos;
var
 priznak             : string;
 hladane             : string;
 pom,Pocet_najdenych : longint;
 povod_adresar       : string;
 nazov,subor         : string;
 t                   : text;
 
 
procedure hladaj_subor(v_adresary:string);
var DirInfo : SearchRec;
    povod_adresar_1 : string;
    mazac:string;
    F:file;
 begin
  getdir(0,povod_adresar_1);
  chdir(v_adresary);
  FindFirst(subor, Anyfile, DirInfo);
  while DosError = 0 do
  begin
    assign(t,povod_adresar+'\'+nazov);
    append(t);
    inc(Pocet_najdenych);
    Writeln(t,v_adresary+'\'+DirInfo.Name);
    if priznak='' then
    Writeln(v_adresary+'\'+DirInfo.Name)
    else
    Begin
    mazac:=v_adresary+'\'+DirInfo.Name;
    assign(F,mazac);
    {$I-}
    Reset(F);
    {$I+}
    if IOResult <> 0 then
    Writeln('Cannot find ', mazac)
    else
    begin
    Close(F);
    Erase(F);
    Writeln(v_adresary+'\'+DirInfo.Name+'  <- zmazane');
    End;
    End;
    FindNext(DirInfo);
    close(t);
  end;
  chdir(povod_adresar_1);
 end;
 
procedure hladaj(cesta:string);
 var DirInfo: SearchRec;
 begin
  hladaj_subor(cesta);
  chdir(cesta);
  if IOResult <> 0 then Writeln(cesta+ ' Adresar je nepristupny')
  else
   begin
    FindFirst('*.*', Anyfile, DirInfo);
    while DosError = 0 do
       begin
        if (Dirinfo.Attr and Directory<>0) and (Dirinfo.Name<>'.') and (DirInfo.Name<>'..') then
         begin
          if cesta[length(cesta)]='\' then begin hladaj(cesta+Dirinfo.Name);end
          else begin hladaj(cesta+'\'+Dirinfo.Name);end;
          chdir(cesta);
         end;
        FindNext(DirInfo);
       end;
   end;
 end;
 
procedure help;
 begin
  Writeln('Program na prehladavanie disku : ');
  Writeln('Priklad : find [/s uklada] [/f subor] [/d adresar] [/e]');
  Writeln('/s ukladaj do zadaneho suboru');
  Writeln('/f hladaj subor ');
  Writeln('/d hladaj v adresari');
  Writeln('/e zmaze subor');
  Writeln('/? toto menu');
  Writeln;
  Writeln('Ak nezadas hodnoty za prepinacmi tak sa daju hodnoty DEFAULT.');
  Writeln('Aspon jeden z prepinacov musi byt zapnuty.');
  halt;
 end;
 
begin
 clrscr;
 getdir(0,povod_adresar);
 if paramcount=0 then begin Writeln('Chybaju VAM parametre !');help;halt;end;
 for pom:= 1 to paramcount do
  begin
   if (paramstr(pom)='/?') or (paramstr(pom)='help') then help;
   if paramstr(pom)='/f' then subor:=paramstr(pom+1);
   if paramstr(pom)='/d' then hladane:=paramstr(pom+1);
   if paramstr(pom)='/s' then nazov:=paramstr(pom+1);
   if paramstr(pom)='/e' then priznak:=paramstr(pom);
  end;
 if subor=''   then subor:='*.*';
 if hladane='' then hladane:=povod_adresar;
 if nazov=''   then nazov:='find';
 if priznak='' then priznak:='';
 assign(t,nazov);
 rewrite(t);
 close(t);
 hladaj(hladane);
 Writeln;
 Writeln('Pocet najdenych :',pocet_najdenych);
 Writeln('koniec');
 chdir(povod_adresar);
 readkey;
end.
 
 

[Naj be¾i] [Ulo¾] [Ciskaj] [Naj idze meilom]