Delphi визуалды программалау ортасы



бет90/97
Дата06.01.2022
өлшемі2,03 Mb.
#12435
1   ...   86   87   88   89   90   91   92   93   ...   97
Байланысты:
Delphi vizualdy programmalau ortasy

44-сурет

23. Файл іздеу


Жұмыстың мақсаты – қажетті файлды іздеп табатын бағдарлама құру.

1. Ол үшін Пішінге мына суретте көрсетілген компоненттерді орнату.

2. Буманы таңдаңыз, оны Шолу арқылы көрсетуге болады, содан соң файлдың немесе оның кеңейтілімін көрсетіп, Табу батырмасын басыңыз.

3. Төменде файл іздеудің бағдарламасы берілген.





45-сурет
Бағдарламасы:

// Файлды көрсетілген каталогтан не ішкі каталогтан іздеуде Find //рекурсивтік процедурасы қолданылады.

unit FindFile_;

{$R *.dfm}

var

FileName: string; // ізделінді файл не маска аты



cDir: string;

n: integer; // сұранысты қанағаттандыратын файл саны

// файлды ағымдағы каталогтан іздеу

procedure Find;

var

SearchRec: TSearchRec; //файл не каталог жайлы хабарлама



begin

GetDir(0,cDir); // ағымдағы каталог атын алу

if cDir[length(cDir)] <> '\' then cDir := cDir+'\';

if FindFirst(FileName, faAnyFile,SearchRec) = 0 then

repeat

if (SearchRec.Attr and faAnyFile) = SearchRec.Attr then



begin

Form1.Memo1.Lines.Add(cDir + SearchRec.Name);

n := n + 1;

end;


until FindNext(SearchRec) <> 0;

// ағымдағы каталогтың ішкі каталогтарын өңдеу

{ Егер жүйелік каталог өңделмесе, онда faAnyFile орнына faDidertory беріледі. Мұның себебі мынада: жай каталог үшін SearchRec.Attr мәні faDirectory (16), ал Program Files үшін - faDirectory+faReadOnly (17), Windows каталогы үшін - faDirectory+faSysFile (20) тең.}

if FindFirst('*', faAnyFile, SearchRec) = 0 then

repeat

if (SearchRec.Attr and faDirectory) = faDirectory then



// каталогтар .. және . тағы да каталогтар, бірақ оған кірудің //қажеті жоқ !!!

if SearchRec.Name[1] <> '.' then

begin

// Form1.Memo1.Lines.Add('>>>>'+SearchRec.Name);



ChDir(SearchRec.Name);// каталогқа кіру

Find; // іздеуді ішкі каталогта орындау

ChDir('..');// каталогтан шығу

//Form1.Memo1.Lines.Add('<<<<'+SearchRec.Name);



end;

until FindNext(SearchRec) <> 0;



end;

// Іздеу батырмасында шерту



Достарыңызбен бөлісу:
1   ...   86   87   88   89   90   91   92   93   ...   97




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет