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

Вниз

Сканирование папки   Найти похожие ветки 

 
Der Nechk@ssoff ©   (2006-03-23 12:14) [0]

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


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

FindFirst
FindNext
FindClose
+F1


 
Der Nechk@ssoff ©   (2006-03-23 12:22) [2]

непонял


 
Kolan ©   (2006-03-23 12:22) [3]

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

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


 
Der Nechk@ssoff ©   (2006-03-23 12:29) [4]

Переправил этот кусок кода под себя но при компиляции выходит ошибка:
";"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("&#207;&#235;&#224;&#227;&#232;&#237;&#238;&#226; &#237;&#229;&#242;");
until FindNext(SearchRec)<>0;
FindClose(SearchRec);  
end"?"
end;


 
balepa ©   (2006-03-23 12:32) [5]

if (SearchRec.Attr and faDirectory)<>0 then
ScanDir(Dir+SearchRec.name)
else
begin
Showmessage("&Iuml;&euml;&agrave;&atilde;&egrave;&iacute;&icirc;&acirc; &iacute;&aring;&ograve;");
until FindNext(SearchRec)<>0;
FindClose(SearchRec);  
end;


 
Der Nechk@ssoff ©   (2006-03-23 12:44) [6]


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


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


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


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

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


 
Kolan ©   (2006-03-23 13:24) [8]

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

Пример:

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;


 
Der Nechk@ssoff ©   (2006-03-23 13:33) [9]

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


 
Der Nechk@ssoff ©   (2006-03-23 14:50) [10]

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


 
Kolan ©   (2006-03-23 14:54) [11]

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

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;


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

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

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



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
2-1143500522
Da Stranger
2006-03-28 03:02
2006.04.09
Изменение размера массива


2-1143185629
Igorntk
2006-03-24 10:33
2006.04.09
подсчет заполненных строк в таблице


3-1139486718
wezzz
2006-02-09 15:05
2006.04.09
Так работает ли BDE под Windows 2003 x64?


2-1143090988
Sirus
2006-03-23 08:16
2006.04.09
Вертикальный грид


4-1137749947
not_dev
2006-01-20 12:39
2006.04.09
Контроль компонентов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский