Nu este o situație familiară? Este necesar să vă asigurați că programul caută un fișier. Totul este bine dacă faci există o componentă specială (de altfel, nu este inclusă în setul standard). Și dacă nu este? Aici este necesar să se scrie un algoritm de căutare a fișierelor.
În Delphi, există două funcții pentru găsirea fișierelor. Aceasta este -
funcționa FindFirst (Path const: string; Attr: Integer; var F: TSearchRec): Integer;
funcția FindNext (var F: TSearchRec): Integer;
Vom înțelege ce înseamnă aceste funcții. Mai întâi, luați primul - FindFirst. Vom face mai întâi variabilele.
Calea este o variabilă, după cum sugerează și numele, care arată calea spre directorul în care fișierul va fi căutat. În plus, această variabilă include și numele fișierelor care pot fi găsite. Și, în numele fișierului, puteți utiliza astfel de simboluri: * (asterisc) și. (un semn de întrebare). Valorile acestor simboluri sunt standard: un semn de întrebare este orice caracter valid, un asterisc este o combinație de caractere valide. Prin caractere admise, înțeleg caracterele care pot fi folosite în sistemul de operare pentru a desemna numele fișierelor.
Exemplu de utilizare a variabilei Path:
Fiți atenți! Nu este permisă folosirea tastelor * și. în numele directorului. Aceste caractere pot fi utilizate numai în numele fișierului.
Attr - această variabilă specifică tipul de fișiere care trebuie găsite. Tipul variabilei este Integer. Pentru a nu suferi de memorarea figurilor, vă recomand să vă amintiți următoarele cuvinte:
faReadOnly - fișiere care au atributul "Numai citire".
faHidden - fișiere care au atributul "Ascuns" setat.
faSysFile - fișiere care au atributul "System" setat.
faArchive - fișiere care au setat atributul "Archive".
faDirectory - director. Adică căutarea subdirectoarelor din director.
faAnyFile - orice fișier (inclusiv faDirectory și faVolumeID).
Acum, aceste cuvinte pot fi tratate ca numere - adăugați-le și scade. De exemplu:
Cu toate acestea, rețineți că atunci când aplicați scăderea, rezultatul se poate dovedi a fi oarecum neașteptat, astfel încât să nu o abuzeze mai bine.
Acum, să vedem ce face funcția. Funcția returnează 0 dacă a reușit sau, altfel, codul de eroare. Mai mult decât atât, în cazul în care funcția de fișier găsit, condiții și trasee variabile și condiții satisfăcând variabilă Attr, stochează rezultatul într-o variabilă F (de tip TSearchRec), care, în mod natural, trebuie să fie declarată comanda Var.
Tipul TSearchRec poate fi reprezentat ca:
tip TSearchRec = înregistrare
Timp: Integer;
Dimensiune: Integer;
Attr: Integer;
Nume: TFileName;
ExcludeAttr: Integer;
FindHandle: Thandle;
FindData: TWin32FindData;
se încheie;
Acum, să vedem ce înseamnă funcția FindNext.
În cazul în care echipa FindFirst găsit un fișier, este posibil ca, în cazul în care numele de fișier setat cu simbolurile * și / sau. există unul sau mai multe fișiere care satisfac condițiile de căutare. În acest caz, se utilizează comanda FindNext. De asemenea, funcția returnează 0 dacă a reușit sau, altfel, codul de eroare. Și, de asemenea, scrie datele la variabila F.
Acum, cunoscând aceste două comenzi, puteți compila și un algoritm pentru găsirea fișierului specificat.
Observați procedura FindClose. Aceasta eliberează memoria că funcțiile FindFirst și FindNext sunt ocupate.