Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];

Вниз

Поиск, оптимизация.   Найти похожие ветки 

 
XenonXX   (2003-08-08 08:22) [0]

words:array of string;

....

procedure FindAll(dir,filename:string);
var data:TSearchRec;
s:string;
i:integer;
p:boolean;
l:TListItem;
icon:Hicon;
ic:Ticon;
t:pchar;
w:word;
begin
try
dir:=Slesh(dir);
s:=dir+"*";
inc(e);
if FindFirst(s,faAnyFile,data)=0 then
begin
repeat
if (data.Name<>".")and(data.Name<>"..") then
begin
s:=ExtractFileExt(data.Name);
if (length(s)<4)and((data.Attr and faDirectory) <> 0)
then begin
s:=dir+data.Name;
FindAll(s,filename)
end
else begin
if (pos(filename,data.Name)<>0)or(filename="") then
begin
p:=true;
IF high(words)<>-1 then
begin
Form1.Memo1.Clear;
Form1.Memo1.Lines.LoadFromFile(dir+data.Name);
for i:=low(words) to high(words) do
if pos(words[i],Form1.Memo1.Text)=0 then begin
Application.ProcessMessages;
p:=false;
break;
end;
end;
if p=true then begin
l:=form1.ListView1.Items.Add;
l.Data:=GetMemory(255);
{string}tt(l.Data^):=dir+data.Name;
l.Caption:=data.Name;
t:=pchar(dir+data.Name);
s:=rr("\"+ExtractFileExt(dir+data.Name),"");
s:=rr("\"+s+"\DefaultIcon","");
t:=pchar(copy(s,1,pos(",",s)-1));
s:=copy(s,pos(",",s)+1,length(s)-pos(",",s));
w:=StrToInt(s);
icon:=ExtractIcon(HInstance, t,w);
ic:=TIcon.Create;
ic.Handle:=icon;
l.ImageIndex:=form1.ImageList1.AddIcon(ic);
end;
end;
end;
end;
Application.ProcessMessages;
if stop then begin
FindClose(data);
exit;
( data) words:array of string;

....

procedure FindAll(dir,filename:string);
var data:TSearchRec;
s:string;
i:integer;
p:boolean;
l:TListItem;
icon:Hicon;
ic:Ticon;
t:pchar;
w:word;
begin
try
dir:=Slesh(dir);
s:=dir+"*";
inc(e);
if FindFirst(s,faAnyFile,data)=0 then
begin
repeat
if (data.Name<>".")and(data.Name<>"..") then
begin
s:=ExtractFileExt(data.Name);
if (length(s)<4)and((data.Attr and faDirectory) <> 0)
then begin
s:=dir+data.Name;
FindAll(s,filename)
end
else begin
if (pos(filename,data.Name)<>0)or(filename="") then
begin
p:=true;
IF high(words)<>-1 then
begin
Form1.Memo1.Clear;
Form1.Memo1.Lines.LoadFromFile(dir+data.Name);
for i:=low(words) to high(words) do
if pos(words[i],Form1.Memo1.Text)=0 then begin
Application.ProcessMessages;
p:=false;
break;
end;
end;
if p=true then begin
l:=form1.ListView1.Items.Add;
l.Data:=GetMemory(255);
{string}tt(l.Data^):=dir+data.Name;
l.Caption:=data.Name;
t:=pchar(dir+data.Name);
s:=rr("\"+ExtractFileExt(dir+data.Name),"");
s:=rr("\"+s+"\DefaultIcon","");
t:=pchar(copy(s,1,pos(",",s)-1));
s:=copy(s,pos(",",s)+1,length(s)-pos(",",s));
w:=StrToInt(s);
icon:=ExtractIcon(HInstance, t,w);
ic:=TIcon.Create;
ic.Handle:=icon;
l.ImageIndex:=form1.ImageList1.AddIcon(ic);
end;
end;
end;
end;
Application.ProcessMessages;
if stop then begin
FindClose(data);
exit;
end;
until FindNext(data)<>0;
end;
FindClose(data);

except
end;
end;


Вот, думаю поймете, но как сделать быстрее?


 
Palladin   (2003-08-08 08:34) [1]

быстрее в FAQ


 
NAlexey   (2003-08-08 09:10) [2]

Я не понял...


 
[lamer]Barmaglot   (2003-08-08 09:24) [3]

Если по простому, то http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=1015254946&n=19
Если хочешь быстрее и есть желание разбираться, то: http://www.delphimaster.ru/articles/shell.html



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.008 c
14-68464
Basja
2003-08-06 13:24
2003.08.21
Старая мессага


14-68449
Aldor
2003-08-04 17:12
2003.08.21
Центр Американского Английского :)))


3-68212
Magic&Wizard
2003-07-24 20:41
2003.08.21
КАК отловить, что запись в базе уже СУЩЕСТВУЕТ


3-68241
nmx
2003-07-25 21:06
2003.08.21
как создать псевдодим для таблицы загруженной в ClientDataSet?


1-68374
AnthreX
2003-08-07 03:38
2003.08.21
Большая таблица





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский