Noul motor de cautare in limba rusa "Ivan Susanin"
Nu este o situație familiară? Este necesar să vă asigurați că programul caută un fișier. Bine, dacă aveți o componentă specială pentru acest lucru (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. Acestea sunt:
Vom înțelege ce înseamnă aceste funcții. Mai întâi, luați primul - FindFirst. Vom face mai întâi variabilele.
Path Aceasta este o variabilă, așa cum sugerează și numele, care arată calea spre directorul unde va fi căutat fișierul. Î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 a oricăror 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:
Notă: Nu este permisă folosirea tastelor * și. în numele directorului. Aceste caractere pot fi utilizate numai în numele fișierului.
Attr O 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: atunci când aplicați scăderea, rezultatul poate fi oarecum neașteptat, deci este mai bine să nu îl abuzați.
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:
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ția 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.