Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для Tilk
6 / 6 / 0
Регистрация: 13.03.2010
Сообщений: 79

Ручная сортировка файлов по разрешениям

18.01.2011, 16:51. Показов 1658. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день.

Есть список файлов в текущей папке проекта, пытаюсь забить в vector<string> modelfiles только те, что с расширением .cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void L_CDialog::InitFileList()
{
    WIN32_FIND_DATA winFileData;
    HANDLE hFile;
    char szPath[MAX_PATH];
    modelfiles.clear();
    folders.clear();
    if(GetCurrentDirectory(sizeof(szPath),szPath))
    {
        lstrcat(szPath,"\\*.*");
        hFile = FindFirstFile(szPath,&winFileData);
        if (hFile!=INVALID_HANDLE_VALUE)
        {
            //Error
        }
        while (FindNextFile(hFile,&winFileData)!=0)
        {
            string temp(winFileData.cFileName);
 
            int a,b;
            a = temp.find(".cpp");
            b = temp.size() - 4;
            if(a == b)
                modelfiles.push_back(temp);   
        } 
        FindClose(hFile);
    }
}
В итоге после цикла вектор остается пустым несмотря на вот такой парадокс - метод push_back просто обязан был быть вызван, т.к. в отладке есть случаи, когда a == b (скриншот прилеплен).

Если же закомментить условие - в векторе появляются все без исключения файлы - т.е. метод push_back вызывается и корректно работает.
Миниатюры
Ручная сортировка файлов по разрешениям  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.01.2011, 16:51
Ответы с готовыми решениями:

Ручная сортировка
Добрый вечер! Картины выводятся из БД по id, необходимо переодически вручную менять их порядок. Подскажите, пожалуйста, как лучше...

Как адаптировать приложение к меньшим разрешениям экрана в tkinter
Писал графический интерфейс, проверяя лишь на своем ПК, на моем мониторе разрешение 1920х1080. Когда начал проверять на ПК с меньшими...

Сортировка большого количества файлов по папкам, созданным по части названия файлов
Здравствуйте, уважаемые! Сразу к делу. Имеется папка, в ней уже более 500.000 файлов, и с каждым днем все больше на 3-4 тысячи....

6
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,977
18.01.2011, 17:07
Цитата Сообщение от Tilk Посмотреть сообщение
lstrcat(szPath,"\\*.*");
А что бы сразу нужные файлы не искать?
C++
1
lstrcat(szPath,"\\*.cpp");
тогда и проверять больше ничего не прийдётся...
0
 Аватар для Tilk
6 / 6 / 0
Регистрация: 13.03.2010
Сообщений: 79
18.01.2011, 17:23  [ТС]
Работает... А таким способом можно распознать папку?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,977
18.01.2011, 17:36
Цитата Сообщение от Tilk Посмотреть сообщение
А таким способом можно распознать папку?
не-а... если только у папки расширения срр не будет... ищите все файлы, из них выбирайте папки и в папках ищите срр файлы...
0
 Аватар для Tilk
6 / 6 / 0
Регистрация: 13.03.2010
Сообщений: 79
18.01.2011, 17:49  [ТС]
А так можно?

C++
1
2
3
4
5
6
bool isFolder = true;
for(int i=0;i<temp.lenght;i++)
{
  if(temp.c_str()[i] == '.')
    isFolder = false;
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,977
18.01.2011, 18:06
Цитата Сообщение от Tilk Посмотреть сообщение
А так можно?
не, так лучше не делать - во-первых в имени папки вполне может быть точка, а во-вторых в структуре WIN32_FIND_DATA, указатель на объект которой принимает FindFirstFile()/FindNextFile(), есть специальное поле dwFileAttributes. Его и нужно проверять:
C
1
2
3
4
if ( winFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
  /* папка. ищем в ней вложенные папки, за тем файлы с расширением срр */
  ...
}
0
 Аватар для Tilk
6 / 6 / 0
Регистрация: 13.03.2010
Сообщений: 79
18.01.2011, 20:09  [ТС]
Огромное спасибо, Вы очень помогли!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.01.2011, 20:09
Помогаю со студенческими работами здесь

Сортировка последовательных файлов, однофазная сортировка, слияние и т.п.
мне нужен сам код сортировки. неважно с каким условием. смысл такой: &quot;последовательность чисел: 1 4 3 8 6 7 2 5. В результате...

Сортировка файлов Трехленточная сортировка
Реализовать алгоритм трехленточной сортировки исходного файла, содержащего N элементов (2500&lt;N&lt;100000). Подобные ссылки...

Ручная корректировка макета
Есть документ Отчет кассира (фондовый). В нем табличное поле в виде макета, которое заполняется при нажатии &quot;Заполнить&quot;. Можно ли...

Ручная прорисовка интерфейса
Пишу программу, которая сама рисует пользовательский интерфейс на форме. И вот столкнулся со странной проблемой. На форме рисуются...

Ручная модерация "тематики"?
Привет всем. Такой момент. Есть аккуратно продвигаемый СДЛ статьями на белых тематических ресурсах. ВЧ и ряд сопутсвующих НЧ запросов....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru