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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2010, 12:08   #1
Nice42ru
Форумчанин
 
Регистрация: 25.10.2009
Сообщений: 131
По умолчанию Доработка процедуры

Цитата:
Сообщение от mutabor Посмотреть сообщение
Вот более продвинутая версия этой процедуры, пока проверял немного усовершенствовал, можно добавить дополнительный параметр - spaces, с ним в листбоксе можно будет визуально увидеть степень вложенности.
Параметр level вручную указывать не нужно.
Код:
procedure FindIt(path, ext: string; aListBox: TListBox;
  spaces: boolean = false; level: integer = 0);
var
  SR: TSearchRec;
  s: string;
  i: integer;
begin
if FindFirst(Path+Ext, faAnyFile, SR) = 0 then
  begin
    repeat
    if (SR.Attr = faDirectory) then
      if (SR.Name <> '.') and (SR.Name <> '..') then
        begin
        s:='';
        for i:=0 to level-1 do
          s:=s+'    ';
        aListBox.Items.Add(s+SR.Name);
        Inc(level);
        if spaces then
          FindIt(Path+sr.Name+'\',ext,aListBox,true,level)
        else
          FindIt(Path+sr.Name+'\',ext,aListBox);
        Dec(level);
        end;
    until FindNext(SR) <> 0;
    FindClose(SR);
  end;
end;
примеры вызова
FindIt(ExtractFilePath(Application. ExeName),'*.*', ListBox1);
FindIt(ExtractFilePath(Application. ExeName),'*.*', ListBox1,true);
Вот процедура для вывода в ListBox всех папок и подпапок, как их выводить с полным путём тоесть
есть папки
c:/a/b/c
c:/a/s/

и чтобы при поиске в листбоксе появилось
c:/a/
c:/a/b/
c:/a/b/c
c:/a/s
а не просто a b c s как в этой процедуре, прошу вашей помощи!
Nice42ru вне форума Ответить с цитированием
Старый 10.02.2010, 12:52   #2
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

Код:
aListBox.Items.Add(path+'/'+SR.Name);
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 10.02.2010, 13:48   #3
Nice42ru
Форумчанин
 
Регистрация: 25.10.2009
Сообщений: 131
По умолчанию

спасибо! Тему можно закрыть
Nice42ru вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доработка программы akialex Помощь студентам 3 24.12.2009 21:09
Доработка A93 Общие вопросы C/C++ 4 28.11.2009 13:29
Доработка программы!! Дмитрий Н. Компоненты Delphi 0 15.04.2009 11:26
доработка алгоритма... Sota Помощь студентам 2 13.06.2008 15:45