Dze je subor www.TrSek.com/cover/benkovic/find.pas{ FIND.PAS Copyright (c) Jan Benkovic }
{ 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. }
{ }
{ Datum:04.10.2001 http://www.trsek.com }
{$I-}
uses crt,dos;
var
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;
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(v_adresary+'\'+DirInfo.Name);
Writeln(t,v_adresary+'\'+DirInfo.Name);
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]');
Writeln('/s ukladaj do zadaneho suboru');
Writeln('/f hladaj subor ');
Writeln('/d hladaj v adresari');
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);;
end;
if subor='' then subor:='*.*';
if hladane='' then hladane:=povod_adresar;
if nazov='' then nazov:='find';
assign(t,nazov);
rewrite(t);
close(t);
hladaj(hladane);
Writeln;
Writeln('Pocet najdenych :',pocet_najdenych);
Writeln('koniec');
chdir(povod_adresar);
readkey;
end.