![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сканирование папки [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