Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2008, 17:03   #1
asked86
Пользователь
 
Регистрация: 07.09.2008
Сообщений: 16
Вопрос Пишу программу которая ищет файлы на компьютере ! Как лучше организовать структуры данных ?

Пишу программу которая ищет файлы на компьютере ! Как лучше организовать структуры данных ?
Вот я сделал и определил для себя что лучше использовать "Дерево" !
т.е я хочу заносить в одно поле имя файла в виде строки , а в другое имя папки ! Как вы на это смотрите ! Смысл моей программы заключается в том, что при включении компьютера она начинает искать все папки и файлы, и заносит их названия в дерево и это все хранится в оперативе , а когда мне нужен файл он находит мгновенно, т.к все имена в памяти а потом с помощью функции запушу зная путь к ней !
Может быть можно проще ! Подскажите ?
asked86 вне форума Ответить с цитированием
Старый 13.12.2008, 22:42   #2
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Код:
Procedure Search;
Var SR:TSearchRec;
    FindRes:Integer;
begin
    FindRes:=FindFirst('*.*',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;
      Memo1.Lines.Add(SR.Name);
      // вот тут добавляешь значение в переменной SR.Name в базу (полный путь к файлу)
      FindRes:=FindNext(SR);
      end;
    FindClose(SR);
end;
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 14.12.2008, 13:51   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Сообщение от asked86 Посмотреть сообщение
Смысл моей программы заключается в том, что при включении компьютера она начинает искать все папки и файлы, и заносит их названия в дерево и это все хранится в оперативе , а когда мне нужен файл он находит мгновенно, т.к все имена в памяти а потом с помощью функции запушу зная путь к ней !
Может быть можно проще ! Подскажите ?
визуально искать в неупорядоченном списке с объемом >200 строк (это если только личные без windows Program Files и т.п.). брррр.

если список организован в виде дерева то это уже есть и называется проводник.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 14.12.2008, 13:54   #4
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Цитата:
визуально искать в неупорядоченном списке с объемом >200 строк (это если только личные без windows Program Files и т.п.).
Нет, я думаю автор топика хотел хранить неформатированные строки у себя в БД а потом когда программа сама найдёт то, что искал юзер - сформирует дерево.
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 14.12.2008, 15:12   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
при включении компьютера она начинает искать все папки и файлы, и заносит их названия в дерево и это все хранится в оперативе , а когда мне нужен файл он находит мгновенно, т.к все имена в памяти
Ну давай прикинем сколько времени мой комп будет загружаться если у меня винчестера 200Гб забито файлами от 5Кб до 500Мб?
Я апстену убьюсь пока дождусь конца загрузки.
Этакий эффект можно понаблюдать в проге MediaMonkey, если натравить ее на такой обьем. Поверь мне иногда приходится до получаса ждать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.12.2008, 15:17   #6
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Полностью поддерживаю Stilet
Если уже и делать индексацию - то постепенно, скажем по 1000 файлов за загрузку. Потом при следующей загрузке продолжать - но ведь среди тех 1000 и новые могут появится.
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 14.12.2008, 15:21   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
о ведь среди тех 1000 и новые могут появится.
Отошшш
Потому когда-то один умный человечек написал службу которая при появлении новых файлов заносит их координаты в БД. Ему стандартная виндовая индексация не нравилась чем-то.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.12.2008, 16:09   #8
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Ну ессесна - не понравилась. По моему есть несколько причин:
1) Высокий % загрузки процессора
2) Мало настроек для поиска
3) Чесно сказать, "дерьмовый" поиск в самих файлах
У меня даже однажды случился fatal stop компьютера при поиске...
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 14.12.2008, 17:25   #9
asked86
Пользователь
 
Регистрация: 07.09.2008
Сообщений: 16
По умолчанию

Да ваше мнение понятно , но стоит ли писать так как я хочу или нет , окончательно ? Ваше мнение учту , спасибо !
Че прям такая долгая загрузка будет при включении компа , да ! Ну сколь по времени минуты 3 ?
asked86 вне форума Ответить с цитированием
Старый 14.12.2008, 17:28   #10
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Даже если минуты 3 то меня например будет раздражать, когда комп 3 минуты в состоянии митоза и ничего не сделаешь нормально.
Можно например вручить ей низкий приоритет, мож не так грузить будет.
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу, которая бы определяла при вводе данных в список, симметричен ли он WhyBeNormal Паскаль, Turbo Pascal, PascalABC.NET 3 03.12.2008 00:04
Как лучше организовать базу данных типо как в ICQ Руслантус БД в Delphi 3 09.08.2008 23:57
Как лучше организовать структуру MySQL? Romanbl4 PHP 7 26.06.2008 23:46
как организовать отклик на событие при импорте-экспорте данных Artmi Microsoft Office Excel 8 03.06.2008 23:31
Функция которая в массиве ищет максимальный по модулю элемент Absent Помощь студентам 5 19.11.2007 21:23