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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2010, 00:51   #1
quarty
Форумчанин
 
Аватар для quarty
 
Регистрация: 09.10.2010
Сообщений: 124
Сообщение Как вывести весь каталог txt файлов в ListBox

Задал я путь к папке и как вывести в ListBox список всех файлов txt в этой папке?
Заранее спасибо
quarty вне форума Ответить с цитированием
Старый 20.10.2010, 06:48   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) решить нужны ли Вам файлы в подпапках.

2) почему поиском не пользуетесь?!
Иначе нашли бы элементарно!

вот пример поиска вместе с подкаталогами:
Код:

{ добавив соотвествующий модуль Masks  }
uses ... , Masks;
...


procedure DirSearch(Dir: string; Mask : string; SL: TStrings);
var
  SearchRec: TSearchRec;
begin
  Dir := IncludeTrailingBackslash(Dir);

  if FindFirst(Dir + '*.*', faAnyFile, SearchRec) = 0 then
    repeat
      Application.ProcessMessages;

      if (SearchRec.Attr and faDirectory) <> 0 then begin
        if (SearchRec.name <> '.') and (SearchRec.name <> '..') then
                DirSearch(Dir + SearchRec.name, Mask, sl)
      end
      else
        if MatchesMask(ExtractFileName(SearchRec.Name), Mask) then
          Sl.Add(Dir + SearchRec.Name);
    until FindNext(SearchRec) <> 0;
  FindClose(SearchRec);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  DirSearch('C:\TEMP', '*.TXT', ListBox1.Items);
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.10.2010, 08:56   #3
quarty
Форумчанин
 
Аватар для quarty
 
Регистрация: 09.10.2010
Сообщений: 124
По умолчанию

Спасибо, но подкаталоги не нужны, просто я задаю папку и она выводить список всех txt файлов в ListBox.
quarty вне форума Ответить с цитированием
Старый 20.10.2010, 09:10   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

выкинуть рекурсивный вызов и всех делов то:
Код:
var
  SearchRec: TSearchRec;
begin

  Dir := IncludeTrailingBackslash(Dir);

  if FindFirst(Dir + '*.*', faAnyFile, SearchRec) = 0 then
    repeat
      Application.ProcessMessages;

      if (SearchRec.Attr and faDirectory) = 0 then 
        if MatchesMask(ExtractFileName(SearchRec.Name), "*.TXT") then
            ListBox1.Items.Add(Dir + SearchRec.Name);
    until FindNext(SearchRec) <> 0;
  FindClose(SearchRec);
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.10.2010, 12:00   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как вывести в ListBox список всех файлов txt в этой папке?
Код:
SendMessage(ListBox1.Handle,LB_DIR,0,integer(pchar('c:\*.txt')))
Будьте проще, господа. )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.10.2010, 08:47   #6
quarty
Форумчанин
 
Аватар для quarty
 
Регистрация: 09.10.2010
Сообщений: 124
По умолчанию

Спасибо всем
Stilet отдельное спасибо
quarty вне форума Ответить с цитированием
Старый 21.10.2010, 11:01   #7
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
SendMessage(ListBox1.Handle,LB_DIR,0,integer(pchar('c:\*.txt')))
Будьте проще, господа. )
Изыскано, просто и не неподражаемо, +10
XerSon вне форума Ответить с цитированием
Старый 30.03.2011, 00:59   #8
ШеФФ
Пользователь
 
Регистрация: 16.03.2011
Сообщений: 13
По умолчанию

Цитата:
SendMessage(ListBox1.Handle,LB_DIR, 0,integer(pchar('c:\*.txt')))
У меня вопрос. Как сделать такое же для ComboBox? Вариант заменить ListBox1 на ComboBox1 не работает=(
Не забываем плюсовать репутацию, если я Вам помог.
ШеФФ вне форума Ответить с цитированием
Старый 30.03.2011, 01:00   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ПОСТ 4 гляньте.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.03.2011, 09:53   #10
ШеФФ
Пользователь
 
Регистрация: 16.03.2011
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ПОСТ 4 гляньте.
А почему нельзя сделать это так же в одну строчку? Разве комбобокс и листбокс не идентичны в этом плане? Просветите новичка, плиз=(
Не забываем плюсовать репутацию, если я Вам помог.
ШеФФ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как задать команду загрузки файлов данных на кнопку если каталог и имена файлов известны??? Andbuba Microsoft Office Excel 2 28.12.2008 17:28
Как вывести на экран имена файлов текущего каталога? (С++) Darw1n Помощь студентам 1 13.12.2008 11:10
Как ускорить загрузку списка ListBox из txt-файла? Dux Компоненты Delphi 24 30.10.2008 19:02
как загрузить в ListBox несколько текстовых файлов? One.Love Общие вопросы Delphi 5 14.01.2008 11:54
Как из Memo вывести строки в txt файл в конец там существующих Saili Компоненты Delphi 8 16.12.2006 11:23