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;
// Іздеу батырмасында шерту
Достарыңызбен бөлісу: |