Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Цвета, целые числа https://www.cyberforum.ru/ cpp-beginners/ thread1609539.html
Дан массив целых чисел. Переписать его так, чтобы элементы со значениями меньшими A (вводит пользователь) находились в начале массива и окрашены в один цвет, а большие – в конце и окрашены в другой цвет.
C++ Найти количество столбцов, элементы которых упорядочены по убыванию
Дана матрица M x N. Найти количество столбцов, элементы которых упорядочены по убыванию. Может кто-нибудь подсказать алгоритм решения? Буду очень благодарен:) У меня получилось сделать что-то подобное,но работает через раз int s = 0; for (int i = 1; i < m; i++) { for (int j = 0; j < n; j++) { if (a < a)
C++ Почему функция не будет работать без амперсанда? https://www.cyberforum.ru/ cpp-beginners/ thread1609471.html
void swap(int & ar1, int & ar2) //функция обмена { int temp = ar1; ar1 = ar2; ar2 = temp; } почему функция НЕ будет работать без амперсанда, интересует развёрнутый ответ.
C++ Ошибки: value не определен https://www.cyberforum.ru/ cpp-beginners/ thread1609427.html
думал сделаю влегкую, без mpl::for_each, однако затупил... подскажите в чем проблема, ошибки странные возникают, на vs и gcc разные причем: template<int N, typename Seq> struct print_mpl_vector_recursive { static const int value = boost::mpl::at_c<Seq, N>::type::value; static void print() { prnt_mpl_vector_recursive<N - 1, Seq>::print(); std::cout << value << std::endl; }
Записать в текстовый файл данные структуры C++
Помогите сделать программу. Написать функцию, что записывает в текстовый файл данные структуры, которые мы вводим с клавиатуры.
C++ Реализация функции char *padl(const char *string, int len, int c=' ') https://www.cyberforum.ru/ cpp-beginners/ thread1609403.html
Реализовать функцию возвращающую указатель на новую строку длины len, полученную из string либо удалением лишних символов слева , либо добавлением слева нужного числа символов с . память под строку выделяется с помощью вызова new
C++ Диалог выбора файла https://www.cyberforum.ru/ cpp-beginners/ thread1609399.html
Добрый вечер/ночи! Подскажите, плиз, с помощью какой команды можно открыть диалоговое окно для выбора файла? Спасибо!
C++ Изменение типа указателя
Вот допустим у меня есть два простейших класса, объекты которов занимают в памяти одинаковое количество памяти class prim { public: int x; prim( int x_v ) : x( x_v ){}; };
C++ Найти делители натурального числа Создать список делителей введенного с клавиатуры натурального числа и вывести его на экран. Вот пример программы со списком и основная функция помогите пожалуйста , я не допонимаю как это все связать. Нахождения списка делителей. int n = 5; std::vector SPISOK; for(int i = 1; i < n; i++) if(n%i == 0) https://www.cyberforum.ru/ cpp-beginners/ thread1609386.html C++ Быстрое преобразование Фурье по составному основанию Написал быстрое преобразование Фурье по составному основанию. Не запускается, выдает ошибку: "Debug Error! Run-Time Check Failure #2 - S." Во время компиляции ничего не беспокоит... Вот код: #include<iostream> https://www.cyberforum.ru/ cpp-beginners/ thread1609380.html
C++ Релизация функции настроек
Здравствуйте! Имеется меню, там 3 пункта, один из которых "Настройки" . При нажатии на него открывается еще одно из меню состоящее из 2-х пунктов. (Назовем их "1" и "2") так вот, мне надо чтоб при нажатии на 1 или 2 этот результат запоминался , открывалось опять изначальное меню(там где 3 пункта) и в зависимости от выбранного пункта в настройках, выполнялось то или иное действие. Я попытался это...
C++ Упорядочивание полинома https://www.cyberforum.ru/ cpp-beginners/ thread1609377.html
Ребята, помогите пожалуйста нужна программа упорядочивающая коэффициенты полинома представленные в виде стека. Можно ли реализовать программу по этому коду. #include <stdlib.h> #include <stdio.h> #define MAX_STACK_SIZE 128 typedef struct { int buffer; size_t top;
100 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,599
18.12.2015, 16:42  [ТС] 0

Найти и удалить все одинаковые значения в коллекции файлов - C++ - Ответ 8509361

18.12.2015, 16:42. Показов 1866. Ответов 14
Метки (Все метки)

Ответ

Уважаемые, как запихнуть в map<string> строку вида WHAR [260] ?

Кликните здесь для просмотра всего текста
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#include <windows.h>
#include <Wincrypt.h>
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <string>
#include <map>
 
#define BUFSIZE 1024
#define MD5LEN  16
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    WIN32_FIND_DATA winFileData;
    DWORD dwStatus = 0;
    DWORD cbRead = 0;
    DWORD cbHash = 0;
    HCRYPTPROV hProv = 0;
    HCRYPTHASH hHash = 0;
    HANDLE dFile = NULL;
    HANDLE hFile = NULL;
    BOOL bResult = FALSE;
    BYTE rgbFile[BUFSIZE];
    BYTE rgbHash[MD5LEN];
    char rgbDigits[] = "0123456789abcdef";
    char md5str[MD5LEN * 2 + 1] = "\0";
    
    wchar_t szPath[MAX_PATH];
 
    map <string, string> md5filename;
 
    if(!GetCurrentDirectoryW(sizeof(szPath), szPath)) 
    {
        wcout << L"Невозможно получить текущую папку" << endl;
        system("pause");
        return 0;
    }
    wcout << L"Текущая папка : " << szPath << '\\' << endl << endl;
 
    lstrcat(szPath, L"\\*.*");
 
    if((dFile = FindFirstFile(szPath, &winFileData)) == INVALID_HANDLE_VALUE)
    {
        wcout << L"Нет файлов в папке" << endl << endl;
        system("pause");
        return 0;
    }
    
 
    do // Цикл по файлам
    {
        if(winFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) continue; // Если это не файл - тогда дальше
 
        hFile = CreateFile(winFileData.cFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
 
        if(hFile == INVALID_HANDLE_VALUE) // Попытка открыть файл для чтения 
        {
            wcout << L"Невозможно открыть файл " << winFileData.cFileName << endl << endl;
            continue;
        }
        wcout << winFileData.cFileName;
 
        if(!CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
        {
            dwStatus = GetLastError();
            wcout << endl << L"Ошибка, не удалось получить контекст: " << dwStatus << endl << endl;
            CloseHandle(hFile);
            continue;
        }
        if(!CryptCreateHash(hProv, CALG_MD5, 0, 0, &hHash))
        {
            dwStatus = GetLastError();
            wcout << endl << L"Ошибка, не удалось получить контекст: " << dwStatus << endl << endl;
            CloseHandle(hFile);
            CryptReleaseContext(hProv, 0);
            continue;
        }
        while(bResult = ReadFile(hFile, rgbFile, BUFSIZE, &cbRead, NULL))
        {
            if(cbRead == 0) break;
 
            if(!CryptHashData(hHash, rgbFile, cbRead, 0))
            {
                dwStatus = GetLastError();
                wcout << endl << L"Ошибка, не удалось получить хэш: " << dwStatus << endl << endl;
                CryptReleaseContext(hProv, 0);
                CryptDestroyHash(hHash);
                CloseHandle(hFile);
                continue;
            }
        }
        if(!bResult)
        {
            dwStatus = GetLastError();
            wcout << endl << L"Ошибка, не удалось прочитать файл: " << dwStatus << endl << endl;
            CryptReleaseContext(hProv, 0);
            CryptDestroyHash(hHash);
            CloseHandle(hFile);
            continue;
        }
        cbHash = MD5LEN;
 
        if(CryptGetHashParam(hHash, HP_HASHVAL, rgbHash, &cbHash, 0))
        {
            wcout << L" MD5 хэш: ";
 
            for(DWORD j = 0, i = 0; i < cbHash; i++)
            {
                md5str[j++] = rgbDigits[rgbHash[i] >> 4];
                md5str[j++] = rgbDigits[rgbHash[i] & 0xf];
            }
            cout << md5str << endl << endl;
 
            md5filename.insert(pair<string, string>((string)md5str, (string)winFileData.cFileName));
        }
        else
        {
            dwStatus = GetLastError();
            wcout << endl << L"Ошибка, не удалось получить параметры : " << dwStatus << endl << endl;
        }
        CryptDestroyHash(hHash);
        CryptReleaseContext(hProv, 0);
        CloseHandle(hFile);
    }
    while(FindNextFile(dFile, &winFileData));
 
    /*string previos, first; // Массив для хранения предыдущего и текущего хэша
 
    // Вывод одинаковых файлов
    for(auto it = md5filename.begin(); it != md5filename.end(); it++)
    {
        cout << it->first << endl;
        previos = it->first; // Запись текущего хэша
 
        if(previos == first) cout << it->second << endl; // Если предыдущий хэш был такой же, вывести только имя файла
        else // Если хэш другой
        {
            cout << endl << first << " :" << endl << it->second << endl; // Вывести хеш и имя файла
            previos = first; // Записать новый хеш
        }
    }*/
    cout << endl;
    system("pause");
    return 0;
}


С горем пополам удалось получить хэш файлов...

Никак не лезет оно туда(winFileData.cFileName):

C
1
md5filename.insert(pair<string, string>((string)md5str, (string)winFileData.cFileName));


Вернуться к обсуждению:
Найти и удалить все одинаковые значения в коллекции файлов C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2015, 16:42
Готовые ответы и решения:

Найти в строке все одинаковые слова и удалить все повторения слов (+ блок схема)
Дана строка из произвольных слов. Найти все одинаковые слова и удалить все повторения слов.

Удалить одинаковые элементы из коллекции List(Product)
Подскажите , как можно удалить одинаковые элементы из коллекции типа List&lt;Product&gt; (одинаковыми...

Найти в массиве одинаковые элементы и удалить все, кроме одного
Добрый вечер, допустим есть массив (1, 1, 2, 2, 3, 4, 5) с такими значениями. Как написать...

Дана строка из произвольных слов. Найти все одинаковые слова и удалить все повторения слов
Дана строка из произвольных слов. Найти все одинаковые слова и удалить все повторения слов. не...

14
18.12.2015, 16:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2015, 16:42
Помогаю со студенческими работами здесь

Найти и удалить одинаковые подряд идущие одинаковые цифры в матрице
Здравствуйте. Помогите мне пожалуйста в работе с двумерным массивом. Мне нужно найти и удалить...

Удалить пары соседних элементов, имеющих одинаковые значения, и вывести размер полученного массива и значения
Задан размера массива целых чисел и значения его элементов.Удалить пары соседних элементов, имеющих...

Программа, определяющая, есть ли в массиве хотя бы один столбец, содержащий все одинаковые значения, содержащий все разные значения
Написать программу, определяющую есть ли в массиве хотя бы один столбец, содержащий все одинаковые...

Удалить одинаковые числа из 2 файлов
Есть 2 файла с числами и нужно удалить в одном из этих файлов числа которые совпадают с числами во...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru