Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сканирование папки [D7, XP]


Der Nechk@ssoff ©   (2006-03-23 12:14:00) 

Подскажите как при нажатии на кнопку прога сканировала папку в которой находится на наличие Nных типов файлов?


Игорь Шевченко   (2006-03-23 14:55:00) [1]

Der Nechk@ssoff ©   (23.03.06 14:50) [10]

Кнопка F1 находится в левом верхнем углу клавиатуры, справа от кнопки Esc.


Kolan   (2006-03-23 14:54:00) [2]

Вот из старого проекта:

function TFileListManager.LoadImagesFromWorkDir: Boolean;
var
 CurrentFile: TSearchRec;
begin
 FFileList.Clear;
 FImagePresence := ipNoImages;
 Result := False;
 if FindFirst(FWorkDir + '*.*', faAnyFile, CurrentFile)=0 then
 repeat
   if (CurrentFile.Name <> '.') and (CurrentFile.Name <> '..') then
   if IsFileExtensionKnown(ExtractFileExt(CurrentFile.Name)) then
   begin
     FImagePresence := ipIsImages;
     Result := True;
     FFileList.Add(ExtractFileName(CurrentFile.Name));
   end;
 until FindNext(CurrentFile)<>0;
 FindClose(CurrentFile);

 GetCurrentNewState;
 PostFileChangeMessageToAll;
end;


Der Nechk@ssoff   (2006-03-23 14:50:00) [3]

Ну помогите же...


Der Nechk@ssoff   (2006-03-23 13:33:00) [4]

Перепробовал дофига вариантов-никак...


Kolan   (2006-03-23 13:24:00) [5]

Хороший тебе совет - форматируй исх. текст.

Пример:

Procedure ScanDir(Dir:string);
 var SearchRec:TSearchRec;
begin
 if Dir<>'' then
   if Dir[length(Dir)]<>'\' then
     Dir:=Dir+'\';  
 if FindFirst(Dir+'*.*', faAnyFile, SearchRec)=0 then  
   repeat  
     if (SearchRec.name='.') or (SearchRec.name='..') then continue;  
     if (SearchRec.Attr and faDirectory)<>0 then  
       ScanDir(Dir+SearchRec.name) //we found Directory: "Dir+SearchRec.name"  
     else  
   Showmessage(Dir+SearchRec.name); //we found File: "Dir+SearchRec.name"  
 until FindNext(SearchRec)<>0;  
 FindClose(SearchRec);  
end;


Плохиш   (2006-03-23 12:56:00) [6]


> Der Nechk@ssoff ©   (23.03.06 12:29) [4]
> Переправил этот кусок кода под себя но при компиляции выходит
> ошибка:
> ';'expected but 'END' found(место ошибки помечено-"?")

begin-ы с end-ами подсчитай или мы за тебя это должны делать?


Der Nechk@ssoff   (2006-03-23 12:44:00) [7]


> balepa ©   (23.03.06 12:32) [5]


Вылазит еще больше ошибок


balepa   (2006-03-23 12:32:00) [8]

if (SearchRec.Attr and faDirectory)0 then
ScanDir(Dir+SearchRec.name)
else
begin
Showmessage('Ïëàãèíîâ íåò');
until FindNext(SearchRec)0;
FindClose(SearchRec);  
end;


Der Nechk@ssoff   (2006-03-23 12:29:00) [9]

Переправил этот кусок кода под себя но при компиляции выходит ошибка:
';'expected but 'END' found(место ошибки помечено-"?")

procedure TForm3.Button4Click(Sender: TObject);
Procedure ScanDir(Dir:string);
var SearchRec:TSearchRec;
begin
if Dir'' then if Dir[length(Dir)]'\' then Dir:=Dir+'\';
if FindFirst(Dir+'*.dll', faAnyFile, SearchRec)=0 then
repeat
if (SearchRec.name='.dll') or (SearchRec.name='..') then continue;
if (SearchRec.Attr and faDirectory)0 then
ScanDir(Dir+SearchRec.name)
else
Showmessage('Ïëàãèíîâ íåò');
until FindNext(SearchRec)0;
FindClose(SearchRec);  
end"?"
end;


Der Nechk@ssoff   (2006-03-23 12:22:00) [10]

непонял


Kolan   (2006-03-23 12:22:00) [11]

Проход дерева каталогов

Procedure ScanDir(Dir:string);
var SearchRec:TSearchRec;
begin
if Dir<>'' then if Dir[length(Dir)]<>'\' then Dir:=Dir+'\';  
if FindFirst(Dir+'*.*', faAnyFile, SearchRec)=0 then  
repeat  
if (SearchRec.name='.') or (SearchRec.name='..') then continue;  
if (SearchRec.Attr and faDirectory)<>0 then  
ScanDir(Dir+SearchRec.name) //we found Directory: "Dir+SearchRec.name"  
else  
Showmessage(Dir+SearchRec.name); //we found File: "Dir+SearchRec.name"  
until FindNext(SearchRec)<>0;  
FindClose(SearchRec);  
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ScanDir('c:');  
end;

Автор ответа Vit
Взято с Vingrad.ru http://forum.vingrad.ru


Dmitrij_K   (2006-03-23 12:20:00) [12]

FindFirst
FindNext
FindClose
+ F1


Наверх

Титульная страница Поиск, карта сайта Написать письмо