Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> рекурсивный поиск 
:(
    Опции темы
en-horror
Дата 5.10.2004, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 13.7.2004

Репутация: нет
Всего: нет



народ привидите пример рекурсивного поиска и еще как можно узнать общее количество файлов и папок на винче пез их перебора?
sample.gif
PM MAIL   Вверх
Royan
Дата 5.10.2004, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 14.9.2002
Где: Лондон

Репутация: нет
Всего: 15



Смотри в F.A.Q.!


--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
en-horror
Дата 5.10.2004, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 13.7.2004

Репутация: нет
Всего: нет



Блин там все примеры на делфи, я в нем воопще полный 0, мне нужен пример на Builder'e!!!!!
Я уже все перерыл! Только ненадо отвечать посмотри FindNext and FindFirst я уже это знаю просто как сделать само перенаправление????? sample.gif

Это сообщение отредактировал(а) en-horror - 5.10.2004, 22:15
PM MAIL   Вверх
_hunter
Дата 6.10.2004, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



пример на Builder 'e очень незначительно отличается от примера на Delphi
напиши в чем проблема -- мы поможем


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
en-horror
Дата 12.10.2004, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 13.7.2004

Репутация: нет
Всего: нет



Вот как я понял код рекурсивного обхода котологов на Delphi
Код

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;

переведите мне, а, если нетрудно!
PM MAIL   Вверх
en-horror
Дата 12.10.2004, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 13.7.2004

Репутация: нет
Всего: нет



Народ оооочень надо.
PM MAIL   Вверх
en-horror
Дата 12.10.2004, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 13.7.2004

Репутация: нет
Всего: нет



проверьте правильно ли я перевел
DELPHI
Код

procedure TForm1.FindFile(Dir:String);
Var SR:TSearchRec;
   FindRes:Integer;
begin
FindRes:=FindFirst(Dir+'*.*',faAnyFile,SR);
While FindRes=0 do
  begin
     if ((SR.Attr and faDirectory)=faDirectory) and
     ((SR.Name='.')or(SR.Name='..')) then
        begin
           FindRes:=FindNext(SR);
           Continue;
        end;
     if ((SR.Attr and faDirectory)=faDirectory) then // если найден каталог, то
        begin
           FindFile(Dir+SR.Name+'\'); // входим в процедуру поиска с параметрами текущего каталога + каталог, что мы нашли
           FindRes:=FindNext(SR); // после осмотра вложенного каталога мы продолжаем поиск в этом каталоге
           Continue; // продолжить цикл
        end;
     ListBox1.Items.Add(SR.Name);
     FindRes:=FindNext(SR);
  end;
FindClose(SR);
end;

C++

Код

TSearchRec SR;
int FindRes;
String Dir="C:\\";
{
FindRes = FindFirst(Dir + "*.*", faAnyFile, SR);
while(FindRes == 0)
{
     if (((SR.Attr & faDirectory)==faDirectory) &
     ((SR.Name=='.')||(SR.Name=='..')))
      {
           FindRes=FindNext(SR);
        }
     if ((SR.Attr & faDirectory)==faDirectory)
       {
           FindFile(Dir+SR.Name+'\');///////////////
           FindRes=FindNext(SR); /////////////
         }
     ListBox1.Items.Add(SR.Name);
     FindRes=FindNext(SR);
  }
FindClose(SR);


PM MAIL   Вверх
en-horror
Дата 12.10.2004, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 13.7.2004

Репутация: нет
Всего: нет



И тот старый код
Код

TSearchRec SearchRec;
String Dir;
{
if (Dir != " ")
if (AnsiStrComp(Dir[Dir.Length()],"\")!=0) 
Dir +="\";
if (FindFirst(Dir + '*.*', faAnyFile, SearchRec) = 0 )
if ((SearchRec.name == '.') || (SearchRec.name == '..')) 
if ((SearchRec.Attr & faDirectory) != 0 )
ScanDir(Dir + SearchRec.name);
//we found Directory: "Dir+SearchRec.name"
else
Showmessage(Dir + SearchRec.name);
//we found File: "Dir+SearchRec.name"
//until
FindNext(SearchRec) ;
FindClose(SearchRec);
}



большая просьба исправить все ошибки

да кстати что означает ошибка [C++ Error] Unit1.cpp(24): E2206 Illegal character ' ' (0xa0)
у меня выехало штук сто

PM MAIL   Вверх
en-horror
Дата 13.10.2004, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 13.7.2004

Репутация: нет
Всего: нет



stena.gif
PM MAIL   Вверх
cardinal
Дата 13.10.2004, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Посмотри тут:
http://forum.vingrad.ru/index.php?showtopic=9458
Правда на VB, но помоему сразу становится ясно, что и как. Пробеги взглядом и поймешь смысл. Потом возьми и напиши полностью сам.
Там что-то можно получше написать, но я точно не помню что... Так работает и понятно по крайней мере.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0485 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.