информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяСтрашный баг в WindowsСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Уязвимости в Mongoose ставят под... 
 По роутерам Juniper расползается... 
 С наступающим 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
гугл :) 18.07.07 19:31  Число просмотров: 2536
Автор: i1 Статус: Незарегистрированный пользователь
<"чистая" ссылка>


http://www.google.ru/search?q=%D1%80%D0%B5%D0%BA%D1%83%D1%80%D1%81%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9+%D0%BE%D0%B1%D1%85%D0%BE%D0%B4+%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2+windows+c%2B%2B
http://cclib.nsu.ru/projects/gnudocs/texts/bogatir/6.htm
<programming>
[C++] задача на проход по каталогу на всю глубину 16.07.07 22:34  
Автор: hotice Статус: Незарегистрированный пользователь
<"чистая" ссылка>
нужен самый быстрый алгоритм прохлда покаталогу, исходные данные это начальный адрес, глубина максимальная. На выходе нужен фаил с полными адремсами ко всем подкаталогам и файлам с данными об их размере и дате последнего изменения. Подскажите плз что и где можно почитать. Не как не могу найти алгоритм.

Заранее спасибо.
Есть такой алгоритм прямо в этом форуме, но к твоему сожалению не на C++ 18.07.07 13:26  
Автор: Den <Денис Т.> Статус: The Elderman
<"чистая" ссылка>


http://bugtraq.ru/forum/full/2005/sysadmin/127145.html
[C++] Дык, алгоритм прохождения лабиринта: 17.07.07 05:58  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
Поворачивай всегда вправо, помечай, где уже был...
Если всегда поворачивать вправо, то помечать не надо 17.07.07 12:07  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
Хотя в данном случае по моему проще будет рекурсивный обход
Прошу прощения но я спроил знает ли кто - что и где почитать 17.07.07 17:28  
Автор: hotice Статус: Незарегистрированный пользователь
<"чистая" ссылка>
и мне нужен не просто алгоритм прохода по каталогу, а самая быстрая реализация этого самого прохода :)
Алгоритмов тут всего-то ничего, раз два и обчелся. А по... 17.07.07 17:59  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
> и мне нужен не просто алгоритм прохода по каталогу, а самая
> быстрая реализация этого самого прохода :)
Алгоритмов тут всего-то ничего, раз два и обчелся. А по скорости все одинаковы будут и скорость будет определяться не методологией, и не быстродействием процессора-памяти, а накопителем.
Если же использовать метод не рекурсивного обхода, а по уровням, то скорости может добавить, если каталоги уровня сначала упорядочить по их месторасположению на диске. Хотя и это может дать слишком малый прирост скорости, если каталоги форагментированы и фрагменты и так раскиданы по всему диску.
[C++] Кроме рекурсии, больше ни чего нет?!?!?! 18.07.07 17:48  
Автор: hotice Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > и мне нужен не просто алгоритм прохода по каталогу, а
> самая
> > быстрая реализация этого самого прохода :)
> Алгоритмов тут всего-то ничего, раз два и обчелся. А по
> скорости все одинаковы будут и скорость будет определяться
> не методологией, и не быстродействием процессора-памяти, а
> накопителем.
> Если же использовать метод не рекурсивного обхода, а по
> уровням, то скорости может добавить, если каталоги уровня
> сначала упорядочить по их месторасположению на диске. Хотя
> и это может дать слишком малый прирост скорости, если
> каталоги форагментированы и фрагменты и так раскиданы по
> всему диску.

При поиске в нете я обнаружил рекурсивную реализацию (правда на delphi), вообщем то других вариантов не описано. Интересное предложение насчёт уровней, но ИХМО делать постоянную дефраминтацию выйдет дороже по времени (всё равно спасибо).

Если не трудно на киньте линк(или сам код) рекурсивного прохода на Си.
гугл :) 18.07.07 19:31  
Автор: i1 Статус: Незарегистрированный пользователь
<"чистая" ссылка>


http://www.google.ru/search?q=%D1%80%D0%B5%D0%BA%D1%83%D1%80%D1%81%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9+%D0%BE%D0%B1%D1%85%D0%BE%D0%B4+%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2+windows+c%2B%2B
http://cclib.nsu.ru/projects/gnudocs/texts/bogatir/6.htm
про гугл я уже всё знаю, спб 18.07.07 19:35  
Автор: hotice Статус: Незарегистрированный пользователь
<"чистая" ссылка>
еще парочка ссылок... может поможет... :) 18.07.07 20:29  
Автор: i1 Статус: Незарегистрированный пользователь
<"чистая" ссылка>


http://www.codeguru.com/cpp/w-p/files/comments.php/c4479/?thread=52622
http://www.codeguru.com/cpp/w-p/files/folderdirectorymaintenance/article.php/c12145/
http://www.codeguru.com/cpp/w-p/files/folderdirectorymaintenance/article.php/c12145/
[C++] Спасибо 18.07.07 22:25  
Автор: hotice Статус: Незарегистрированный пользователь
<"чистая" ссылка>
есть вот такая реализация: 18.07.07 19:28  
Автор: hotice Статус: Незарегистрированный пользователь
Отредактировано 18.07.07 19:30  Количество правок: 1
<"чистая" ссылка>
есть вот такая реализация:
[code]
void ScanDir(String dir)
{
TSearchRec SearchRec;
FindFirst(dir+"\\*.*", faAnyFile, SearchRec);
do
{
if(SearchRec.Size == 0 && SearchRec.Name.Length()>2 )
//здесь я как понимаю действия если найден каталог
ScanDir(dir+"\\"+SearchRec.Name);
else
{
//а здесь если найден фаил
};
}while (FindNext(SearchRec)==0);
FindClose(SearchRec);
}
[\code]

помогите разобраться:
1. что за структура TSearchReс, как её определить.
2. и переменная типа string, ругается на ошибку.

P.S. Я программирую в среде Visual Studio 2005. Пробую работать с консольным приложением. В будущем перейду на MFC.
Рекурсия - самый простой и эффективный для таких задач метод. 18.07.07 18:37  
Автор: Den <Денис Т.> Статус: The Elderman
<"чистая" ссылка>
Заводим массив структур (или динамический список Л1), в... 18.07.07 17:59  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
> Если не трудно на киньте линк(или сам код) рекурсивного
> прохода на Си.

Заводим массив структур (или динамический список Л1), в которой одним из свойств будет имя каталога. Заводим два указателя и инициализируем первым элементом массива. Первый указатель двигаем при добавлении найденого каталога, второй для перехода в новый каталог.
Используя функции "файндфёст" и "файнднекст" обходим сначала корневой каталог с поиском в нем каталогов по нужным фильтрам. Таким образом первый указатель по массиву продвинется на количество найденых каталогов первого уровня. Как только "файнднекст"ом дошли до конца, дергаем новый каталог "файндфёстом", взяв его имя по второму указателю. И так до тех пор пока второй указатель не добежит до первого.
А линков на рекурсию я не знаю.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach