|
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
|
|
Поиск с консоли30.09.2009, 21:42. Показов 11684. Ответов 42
Метки нет (Все метки)
вот решил прогу писать,которая ищет на компе все файлы с расширением doc,и все в них удаляет и добавляет звездочки...я только не знаю эту функцию поиска,помогите пожалуйста,надо найти все файлы,и записать их адреса в чар,чтобы потом пользовался с чаром как file_name, наверно понятно объяснил
![]() если возможно то поболше комментарий,ведь с этой функцией в жизни не работал буду благодарен
1
|
|
| 30.09.2009, 21:42 | |
|
Ответы с готовыми решениями:
42
Поиск символа на консоли
Поиск максимального числа в консоли |
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
|
| 01.10.2009, 09:31 | |
|
МедведЪ, На всякий случай
0
|
|
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|
| 01.10.2009, 09:40 | |
|
в общем делай что думаешь и думай что делаешь !!!
0
|
|
|
|
||||||
| 01.10.2009, 12:21 | ||||||
Сообщение было отмечено как решение
Решение
Вот консольная програмка для поиска файла в директории по его расширению....
6
|
||||||
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|
| 01.10.2009, 12:32 | |
|
Юоа, хорошая программа, сохраню для досконального изучения.про справочник не забыл, недавно говорили?
0
|
|
|
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
|
|
| 01.10.2009, 15:44 [ТС] | |
|
easybudda, блин причем мне тут это?
Добавлено через 32 секунды -=ЮрА=-, а что то попроще нету?
0
|
|
|
|
|
| 01.10.2009, 16:13 | |
|
Что именно упростить?Можно диалог выбора каталога убрать и вводить каталог с клавы или тектового файла, а вот алгоритм поиска файлов я думаю никак проще и не сделать (утверждать не стану
)...Тут наверно более опытные програмеры уже должны помочь...
0
|
|
|
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
|
|
| 01.10.2009, 17:27 [ТС] | |
|
-=ЮрА=-, мне нужен только поиск,ненадо чтобы выводлилось все это.
0
|
|
|
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
|
|
| 09.10.2009, 23:19 [ТС] | |
|
-=ЮрА=-, все еще ответов нету?
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,698
|
||||||
| 08.11.2009, 22:41 | ||||||
|
Взялся за анализ исходника. Там есть куда дорабатывать. Так, имеем допустим, директорию C:\proba, в которой, в свою очередь есть 5 (к примеру) директорий без файлов с расширением exe
Предположим также, что мы ищем файлы именно с таким расширением. Тогда вывод будет таким.
1
|
||||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,698
|
||||||
| 09.11.2009, 02:38 | ||||||
|
МедведЪ, ты просил. Упрощённый вариант проги -=ЮрА=-
Потом, я закомментил возврат короткого пути. В тексте я всё это пометил. Вроде остальное правильно. Тебе вопрос: скажи пожалуйста за константу FILE_ATTRIBUTE_DIRECTORY Какова её роль? Не могу понять. Спасибо. Добавлено через 1 минуту Да ещё. Кто будет использвать- о заголовочнх файлах и перетипизации данных заботьтесь сами, я такие мелочи даже не упоминал. Добавлено через 8 минут И второй вопрос Юра, ты располагаешь сведениями, в каком порядке ищутся файлы?
1
|
||||||
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|
| 09.11.2009, 09:06 | |
|
хм, странно, я, конечно, не вникал особо, но Юра выкладывал уже этот код некоторое время назад, за что ему большое спасибо.
Я успешно воспользовался данным примером, сейчас полез и проверил ищет все файлы (сделал в коневой папке 3 папки и в каждой из этих трёх ещё по несколько и все файлы нашлись.) Там ведь рекурсивный вызов GetFileList.
1
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,698
|
||||||||||||||||
| 09.11.2009, 12:15 | ||||||||||||||||
|
Так искать-то, он, может, и ищет, а ты попробуй создать пустую папку C:\proba и в ней создай пять папки proba_1 proba_2 proba_3 proba_4 proba_5 и наполни их каким-нибудь содержимым- например, текстовыми файлами. Или оставь пустыми, это неважно.
А потом попробуй найди в папке C:\proba файлы, которых в ней заведомо нет и во вложенных папках тоже нет. И посмотри на вывод ...И это. Перед заходом в каждую директорию соответственно изменялся (увеличивался путь) директории
А восстанавливать его надо. Отнимать то есть имя директории, поиск в которой мы только что закончили. Так что вот. Добавлено через 12 минут И вывод выложи, если можно. Добавлено через 22 минуты Я те больше скажу- не поленись, помести в папку proba_5 файл *exe и попробуй его найди в папке C:\proba Не найдёт. Догадываешься, почему? Потому, что в проге не присутствует строки
1
|
||||||||||||||||
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|
| 09.11.2009, 12:22 | |
|
с выводом хуже, честно признаюсь не знаю как с консоли его содрать.
да и вывод там смешан с моей отладкой, но результат у меня такой: как вы, kravam, и говрили сделал кучу пустых вложенных папок запихал туда разное и искал чего нет соответсвенно ничего не нашёл. добавил фаил который попадает в условия по иска и нашел его. однако, наш диалог не принесёт результата, так как я уже не помню редактировал ли я Юрины исходники или нет и выдрать их из моего проекта возможноти и желания не имею. одно тока скажу что работает данный блок в моем проекте правильно, покрайней мере в данном частном случае. я тоже заинтересован в создании правильного кода поиска файлов. Юра ты где? разреши вопрос.
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,698
|
|
| 09.11.2009, 12:36 | |
|
Проще будет скомпилить НЕПОСРЕДСТВЕННО Юрину программу. Ошибка в ней. А не в другой проге.
Ну, или дождаться Юру, я ему уже написал.
1
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,698
|
||||||
| 09.11.2009, 19:39 | ||||||
|
МедведЪ, вот тебе ещё проще.
Вариант Юриной проги. Ничего вводить не надо. Забиваешь в исходник имя директории, расширение (обрати внимание на размер) и смотришь на вывод. Хочешь, звпускай из командной строки и перенаправляй в файл. Открыть надо в кодировке OEM (Она же MS DOS) В выводе увидишь исключительно имена файлов с полными путями. Всё! Ничего больше. Делай с ними, что хочешь.
2
|
||||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,698
|
|||||||||||
| 11.11.2009, 07:38 | |||||||||||
|
Друзья!
Если кто пользуется вышеприведёнными прогами быстренько взяли и поправили исходник. Там ошибка есть, что у Юры, что у меня, я щас только нашёл. Вот эту строку
Если пропишем после if (как делали до сего момента), то тогда, если вдруг натыкаемся на системную директорию или файл, то FindFirstFile возвращает -1. Следовательно, всё, что выполнняется по условию (hFile!=INVALID_HANDLE_VALUE) не выполнится и в частности, не будет поставлен конец строки! А это значит, что по выходу из рекурсивной функции GetFileList в том месте, где мы восстанавливаем длину, она будет восстановлена неправильно. Я наткнулся на директорию System Volume Information, не обработал её таким образом, а потом , когда восстанавливал путь, он у меня восстанвился не как C:\ а как C:\Sys! Прибавились эти злополучные три байта, которые я не "отсёк" , не поставил ноль сюда С:\System Volume Informationвот в это место надо ставить ноль!\*.* Поэтому поправьте так:
1
|
|||||||||||
|
|
|
| 11.11.2009, 10:10 | |
|
Медведъ, я не могу понять что именно тебе не надо выводить?Результатом поиска файлов являются их пути или хэндлы, куда тебе их выводить в файл, сделать символьный двухмерный массив???В моей проге пути на экран выводятся...
Что же касается поиска то цикл do while в программе и выполняет поиск...FindNextFile - это функция поиска файла для каталога в котором FindFirstFile вернула хэндл первого файла Детально сформулируй задание, помогу Лучше даже нарисуй интерфейс и как образец сюда выставь, а я попробую его реализовать...Добавлено через 9 минут kravam , если у тебя файловая система NTFS то действительно прога на System Volume Information споткнётся, а вот на фате всё работает, ну а данную манипуляцию sPath[strlen(sPath) - strlen(strstr(sPath,"*.*"))] = '\0'; я делаю по следующей причине : ИмяКаталога\ -> припаиваем к нему "*.*" -> Выходит ИмяКаталога\*.* если в данном каталоге есть файлы то заходим в цикл в котором функция FindNextFile(hFile,&pFILEDATA) постоянно переинициализирует структуру WIN32_FIND_DATA pFILEDATA, а теперь если я бы не убрал данные символы "*.*" из имени каталога то получал бы такие пути ИмяКаталога\*.*\pFILEDATA.cFileName
0
|
|
|
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
|
|
| 11.11.2009, 10:10 [ТС] | |
|
-=ЮрА=-, Oo какой интерфейс...я же сказал,осущствить список по компу doc файлов(что уже есть) и изменить весь тет на "*"...этого то нет
0
|
|
| 11.11.2009, 10:10 | |
|
Помогаю со студенческими работами здесь
20
Отобразить в консоли:увеличить и уменьшить длину массива на заданное ранее из консоли число Как запустить программу из консоли без блокировки консоли? Клавиши F1-F12 в консоли, и работа с мышкой в консоли Вызов консоли для другой вкладки из консоли js Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|