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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2010, 00:49   #11
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Например ?
coNsept вне форума Ответить с цитированием
Старый 10.05.2010, 02:01   #12
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Цитата:
Сообщение от coNsept Посмотреть сообщение
Например ?
Эта структура и функции связанные с ней реализованные в заголовочных файлах для Builder'a. В Visual C++ оно откомпилится?
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 10.05.2010, 02:14   #13
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Не в курсе, но обязательно проверю
coNsept вне форума Ответить с цитированием
Старый 10.05.2010, 02:21   #14
_GT_
 
Регистрация: 08.05.2010
Сообщений: 9
По умолчанию

Доки на англ но кое что понял.
_findfist() функция с двумя параметрами: 1. путь и маска 2. указатель на _finddata_t.
и тут есть несколько вопросов:
в параметр функции нельзя передать переменную, поэтому используют либо постоянную, либо указатель на переменную. finddata - переменная, используется указатель, здесь все нормально. но вот путь и маска char findFilePath[MAX_PATH] массив символов, засунут в эту функцию без указателя. Это опечатка? или зачем тогда вообще нужны указатели?
А как выглядит определения функции _findfist?
_GT_ вне форума Ответить с цитированием
Старый 10.05.2010, 02:33   #15
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Цитата:
А как выглядит определения функции _findfist?
Код:
intptr_t _findfirst(
   const char *filespec,
   struct _finddata_t *fileinfo 
);
Цитата:
маска char findFilePath[MAX_PATH] массив символов, засунут в эту функцию без указателя. Это опечатка?
char findFilePath[MAX_PATH] эквивалентно char * findFilePath = new char[MAX_PATH]
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 14.05.2010, 02:21   #16
_GT_
 
Регистрация: 08.05.2010
Сообщений: 9
По умолчанию

вот чего удалось написать самому.
_finddata_t s;
long ff = _findfirst("d:\\*.*",&s);
for (int i=0;i<20;i++)
{
int fd = _findnext(ff,&s);
cout << s.name<<"\n";
cout << fd<<"\n";
};
так оно хоть как то вменяемо работает. Есть только один отрицательный момент: количество проходов цикла нужно подстраивать под кол-во файлов. Почитал io.h в коментах к _findnext написана очень интересная штука. Что функция возвращает 0 если нашла что то и -1 если ничего больше нет. Что в этом примере и видно. После каждого прохода findnext выводится значение возвращаемое этой функцией. и в принципе все должно быть просто, меняем в цикле переменную i на fd и пока 0 возвращает запускает цикл снова. Но тут возникают проблемы.
в условие цикла нужно засунуть уже готовую переменую, а эта переменная определяется в цикле. В результате родилось вот такое вот решение:
int main()
{
_finddata_t s;
long ff = _findfirst("d:\\*.*",&s);
for (int fd = _findnext(ff,&s);fd==0
{

cout << s.name<<"\n";
cout << fd<<"\n";
};
return(0);
из этого почему то ничего не вышло. цикл не завершился, он похоже бесконечен. а бесконечен он потому что fd постоянно равно 0. К сожалению я не представляю как заморозить процесс и посмотреть что выдает программа в самом начале. но в конце одно и тоже и везде один и тот же 0. есть подозрения findnext не участвует в цикле, т.е функция выполнилась один раз и все. Почему?
_GT_ вне форума Ответить с цитированием
Старый 14.05.2010, 07:51   #17
Olejik
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 218
По умолчанию

вообще уже была тема такого рода и там лежат исходники аж в 2-х или 3-х вариантах )
Olejik вне форума Ответить с цитированием
Старый 14.05.2010, 16:36   #18
_GT_
 
Регистрация: 08.05.2010
Сообщений: 9
По умолчанию

Мне не интересно готовое решение, к тому же многие исходники которые тут выкладывают не хотят компилироваться, количество ошибок которые находит компилятор приводит в ужас, особенно когда количество знакомых операций в этом исходнике стремится к нулю. Мне это интересно в качестве обучения. А в качестве готовых.... как бы существует виндовый поиск с километровым хелпом по трем кнопочкам.
_GT_ вне форума Ответить с цитированием
Старый 14.05.2010, 19:56   #19
_GT_
 
Регистрация: 08.05.2010
Сообщений: 9
По умолчанию

кстати, код переписал, вроде бы теперь все работает:
Код:
int main()
{
    char path[260]="d:\\";
    char mask[10]="*.*";
    char pathmask[270];
    strcpy(pathmask,path);
    strcat(pathmask,mask);
    _finddata_t s;
    long ff = _findfirst(pathmask,&s);
    int fd;
    while (fd!=-1)
    {
    cout <<path <<s.name <<"\n";
    fd = _findnext(ff,&s);

    };
    _findclose(ff);
    return(0);
сейчас пытаюсь придумать как сделать чтобы он по вложенным папкам лазил, но с этим я сам разберусь, по крайней мере есть пара идеек, не проверенных компилятором.
Но мысль не стоит на месте, надо расширять функциональность! и тут есть вопросы:
1. Как вызвать в программе системные переменные? ну что то вроде %systemdrive% %windir%?
2. Как определять букву дисков? к примеру нужно узнать букву cdrom'a как ее получить? или флешки. На скриптах это делалось через серийник тома.
3. Как копировать файлы?

Последний раз редактировалось Stilet; 22.11.2014 в 10:32.
_GT_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++. Поиск файлов profi Помощь студентам 2 16.06.2009 16:04
Поиск файлов Ralf_ru Общие вопросы Delphi 1 30.03.2009 15:42
Поиск файлов LeoN Общие вопросы Delphi 5 25.11.2007 22:54
Поиск файлов necky Общие вопросы Delphi 10 31.08.2007 00:27