Форум программистов, компьютерный форум CyberForum.ru

Поиск с консоли - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 61, средняя оценка - 4.67
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
30.09.2009, 21:42     Поиск с консоли #1
вот решил прогу писать,которая ищет на компе все файлы с расширением doc,и все в них удаляет и добавляет звездочки...я только не знаю эту функцию поиска,помогите пожалуйста,надо найти все файлы,и записать их адреса в чар,чтобы потом пользовался с чаром как file_name, наверно понятно объяснилесли возможно то поболше комментарий,ведь с этой функцией в жизни не работалбуду благодарен
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,266
10.08.2012, 16:46     Поиск с консоли #41
Ещё ошибку нашёл:
В этих кодах
Поиск с консоли
Поиск с консоли

писать так:
C++
1
2
while (FindNextFile(hFile,&pFILEDATA)!=0);
FindClose (hFile);
учитывая, естессно, все другие мои замечания.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
11.08.2012, 10:42     Поиск с консоли #42
kravam, поясни пожалуйста свой пост!
Исходя из этого http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
возвращаемое функцией значение 0 при достижении конца каталога
Return value
If the function succeeds, the return value is nonzero and the lpFindFileData parameter contains information about the next file or directory found.
If the function fails, the return value is zero and the contents of lpFindFileData are indeterminate.
C++
1
while (FindNextFile(hFile,&pFILEDATA)!=0);
Ну и что тут неправильного?

А вот тебе простой пример:
http://liveworkspace.org/code/c42aa5...6c3951f3300c0c
Он иллюстрирует туже самую логику.

Не по теме:

PS:Тебя уже предупреждал модератор, не занимайся некропостингом, нет ты упорно продолжаешь это делать, я то знаю правду, тебя твой друг Evg попросил, который не знает что существуют именованные константы. Что ж идти на поводу у друзей которые просят сделать "каку" ИМХО удел далеко не сильных личностей мира сего...

Добавлено через 9 минут

А это чтобы было видно кто тут настоящий некропостер


kravam, а теперь ты снова скажешь что тебя опять никто не просил
Цитата Сообщение от kravam Посмотреть сообщение
Сказать честно- да. Меня попросили "Освежи топик". Раз просят- надо освежовывать. А ошибку я сам придумал.
Диалог топика
^Tecktonik_KiLLeR 11.11.2009, 22:41 [ТС]
Поиск с консоли
kravam 16.02.2012, 15:58 Поиск с консоли
вроди там всё закончилось месяцев 6 назад и вот опять
kravam Вчера, 15:46
Поиск с консоли

ну ну...

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2012, 17:12     Поиск с консоли
Еще ссылки по теме:

Поиск циклов в графе. Поиск центра взвешенного графа C++
C++ Поиск символа не могу переделать под поиск сочетания символов
Поиск числа в двумерном массиве (бинарный поиск) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,266
11.08.2012, 17:12     Поиск с консоли #43
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
kravam, поясни пожалуйста свой пост!
Да без проблем.
C++
1
while (FindNextFile(hFile,&pFILEDATA)!=0);
В этой строке всё правильно, я говорил о ЗАКРЫТИИ ХЭНДЛА.
C++
1
FindClose (hFile);
Если на основе одной из этих программ написать другую, как это сделал я- ну, например, вывод всех папок в данной папке рекурсивно или организовать поиск строки во всех файлах рекурсивно, то наблюдается следующая картина:
Вот функция main:
C++
1
2
3
4
5
int main () {
 //Тут всякий разный код, среди которого- вышеуказанный поиск 
 //тут конец кода
 getchar ();
}
Запускаем программу, прошерстили все папки на диске C, к примеру. Программа остановилась. А теперь ПОПРОБУЙ ПЕРЕИМЕНУЙ хотя бы одну папку на диске C! Не получится. Я считаю это недостатком и ошибкой.
Задача ведь могут стоять так- переименовать все папки (программно, естессно), содержащие такой-то файл. И всё, ты одним процессом это не сделаешь. Одним процессом ищешь указанные файлы, вторым переименовываешь.
А если закрыть хэндл, как это делаю я, То всё получится. И вообще, хэндл закрывать ПРАВИЛЬНО. Нет разве?

+++++++++++++++++++++++++++++++++++++++++++++++++

На счёт всего остального- мне по фигу как это называется. Некропостинг ещё как-то. А вот если пацаны наткнутся на этот код, хотелось бы, чтобы его использовали максимально корректным. Вот на это мне не по фиг. Будь мужиком, в конце концов.
Yandex
Объявления
11.08.2012, 17:12     Поиск с консоли
Закрытая тема Создать тему
Опции темы

Текущее время: 03:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru