|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.05.2010, 00:49 | #11 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Например ?
|
10.05.2010, 02:01 | #12 |
Студент 1 курса
Форумчанин Подтвердите свой е-майл
Регистрация: 27.06.2008
Сообщений: 959
|
Эта структура и функции связанные с ней реализованные в заголовочных файлах для Builder'a. В Visual C++ оно откомпилится?
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
|
10.05.2010, 02:14 | #13 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Не в курсе, но обязательно проверю
|
10.05.2010, 02:21 | #14 |
Регистрация: 08.05.2010
Сообщений: 9
|
Доки на англ но кое что понял.
_findfist() функция с двумя параметрами: 1. путь и маска 2. указатель на _finddata_t. и тут есть несколько вопросов: в параметр функции нельзя передать переменную, поэтому используют либо постоянную, либо указатель на переменную. finddata - переменная, используется указатель, здесь все нормально. но вот путь и маска char findFilePath[MAX_PATH] массив символов, засунут в эту функцию без указателя. Это опечатка? или зачем тогда вообще нужны указатели? А как выглядит определения функции _findfist? |
10.05.2010, 02:33 | #15 | ||
Студент 1 курса
Форумчанин Подтвердите свой е-майл
Регистрация: 27.06.2008
Сообщений: 959
|
Цитата:
Код:
Цитата:
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
|
||
14.05.2010, 02:21 | #16 |
Регистрация: 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 не участвует в цикле, т.е функция выполнилась один раз и все. Почему? |
14.05.2010, 07:51 | #17 |
Форумчанин
Регистрация: 02.06.2009
Сообщений: 218
|
вообще уже была тема такого рода и там лежат исходники аж в 2-х или 3-х вариантах )
|
14.05.2010, 16:36 | #18 |
Регистрация: 08.05.2010
Сообщений: 9
|
Мне не интересно готовое решение, к тому же многие исходники которые тут выкладывают не хотят компилироваться, количество ошибок которые находит компилятор приводит в ужас, особенно когда количество знакомых операций в этом исходнике стремится к нулю. Мне это интересно в качестве обучения. А в качестве готовых.... как бы существует виндовый поиск с километровым хелпом по трем кнопочкам.
|
14.05.2010, 19:56 | #19 |
Регистрация: 08.05.2010
Сообщений: 9
|
кстати, код переписал, вроде бы теперь все работает:
Код:
Но мысль не стоит на месте, надо расширять функциональность! и тут есть вопросы: 1. Как вызвать в программе системные переменные? ну что то вроде %systemdrive% %windir%? 2. Как определять букву дисков? к примеру нужно узнать букву cdrom'a как ее получить? или флешки. На скриптах это делалось через серийник тома. 3. Как копировать файлы? Последний раз редактировалось Stilet; 22.11.2014 в 10:32. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
С++. Поиск файлов | 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 |