
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.121] |
![]() |
|
![]() |
|
|
Привет Всем!!!
ЛЮДИ подскажите Использовать функции FindFirstFile и FindNextFile. как их надо применить так чтобы можно было открыть в FileListBox1 или DirectoryListBox1 папку "cfg" она находится в директории программы (папка cfg) |
Сообщ.
#2
,
|
|
|
Lucifer
ЧТО В ФАК ПОСМОТРЕТЬ СМОТРЕЛ ![]() |
Сообщ.
#3
,
|
|
|
![]() ![]() AnsiString Path = ExtractFilePath( Application->ExeName ) + "cfg\\*.*"; TSearchRec sr; int iAttributes = faAnyFile; int done = FindFirst( Path, iAttributes, sr ); while( !done ){ Memo1->Lines->Add( sr.Name ); done = FindNext( sr ); } FindClose( sr ); ? |
Сообщ.
#4
,
|
|
|
Вот, я когда-то писал. Расширение .lng только для примера.
Для поиска файлов существуют следующие функции: FindFirst, FindNext, FindClose. Поиск непосредственно начинается вызовом FindFirst с нужными параметрами. А они у нее такие. Первый - путь, AnsiString. Это в какой папке искать плюс маска имени файла. Если мы ищем в текущей папке, то глобальный путь указывать не надо. Первый параметр включает и маску файлов, подходящих под критерии поиска. Она может содержать такие символы, как * или ?, что обозначает, соответственно, что может быть сколько угодно символов на этом месте или только один. Например, если мы ищем все файлы с расширением lng, то маска будет выглядеть так: *.lng. То есть подходят все файлы, у которых расширение обязательно lng. Это понятно. Второй параметр - аттрибуты. Так, можно искать либо только директории, либо скрытые файлы, либо еще несколько вариантов - то есть дополнительный критерий отсеивания. Можно искать, например, только скрытые файлы, директории, системные и так далее. Чаще всего надо искать все файлы подряд, поэтому ставим аттрибут faAnyFile. И, наконец, последний, третий параметр - адрес структуры типа TSearchRec. Эта структура, служащая для поиска файлов, имеет следующий синтаксис: ![]() ![]() #include <SysUtils.hpp> struct TSearchRec { int Time; // время создания файла int Size; // размер файла в байтах int Attr; // аттрибуты файла AnsiString Name; // имя его int ExcludeAttr; int FindHandle; _WIN32_FIND_DATAA FindData; }; ![]() ![]() TSearchRec sr; // создание экземляра класса для поиска файлов if(FindFirst("*.lng",faAnyFile,sr)) // если файл не найден return; // выходим ListBox1->Items->Add(sr.Name); // если нашли, добавляем его имя в ЛистБокс while(!FindNext(sr)) // пока файлы такие еще есть ListBox1->Items->Add(sr.Name); // пока находим, добавляем FildClose(sr); // заканчиваем поиск ![]() |
Сообщ.
#5
,
|
|
|
Sazabis
Спасибо но в приведенном тобой коде есть одно но я спрашивал: в FileListBox1 или DirectoryListBox1 а не мемо1 но ответ хороший … ![]() KAV да ты писатель прям написано все SUPER !!! лови плюсик ![]() |
Сообщ.
#6
,
|
|
|
Я не понял, а чем
![]() ![]() AnsiString szPath = ExtractFileDir(Application->ExeName) + "//cfg"; DirectoryListBox1->Directory = szPath; FileListBox1->Directory = szPath; не катит? Добавлено в : И зачем тебе FindFirst(Next)File? |
Сообщ.
#7
,
|
|
|
Uncle_Bob
Спасибо но уже дошло!!! ![]() |