сделать код проверки crc, цикл для нескольких файлов (c ++)

поэтому у меня есть этот код для проверки файла CRC с именем map.spak и сравнить результат с моим указанным результатом CRC, который хранится в переменной «сравнить»

int main(int iArg, char *sArg[])
{
char sSourceFile[MAX_PATH];

memset(sSourceFile, 0, sizeof(sSourceFile));

CCRC32 crc32;
crc32.Initialize(); //Only have to do this once.

unsigned int iCRC = 0;
strcpy(sSourceFile, "map.spak");
int compare = 399857339;

ifstream checkfile(sSourceFile);
if (checkfile){
cout << "Checking file " << sSourceFile << "..." << endl;
crc32.FileCRC(sSourceFile, &iCRC);

if(iCRC == compare){
cout << "File " << sSourceFile << " complete!\nCRC Result: " << iCRC << endl;
}else{
cout << "File " << sSourceFile << " incomplete!\nCRC Result: " << iCRC << endl;
}
}else{
cout << "File not found!" << endl;
}

system("pause");

return 0;
}

и теперь я хочу сделать этот код для нескольких файлов
скажем, список имен файлов, хранящихся в filelist.txt

структура filelist.txt:

id|filename|specified crc
1|map.spak|399857339
2|monster.spak|274394072

как сделать проверку CRC, цикл для каждого имени файла

я не очень хорош в C ++, я знаю только один алгоритм, потому что я знаю PHP

С ++ слишком сложный

это полный исходный код CRC Исходный код

или пастин

TestApp.cpp ссылка на сайт

-4

Решение

Я сделал несколько изменений в вашем коде. Я удалил защитные заголовки, так как мы используем их только в заголовочных файлах. Старый набор memset был заменен операцией со строками. Я подозреваю, что вам нужно пройти char* к объекту CCRC32, следовательно, sSourceFile по-прежнему const char*, Я скомпилировал код, кроме частей с CCRC32.

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include "../CCRC32.H"
int main(int iArg, char *sArg[])
{
std::vector<std::string> filenames;
// TODO - populate filesnames (paths?)

CCRC32 crc32;
crc32.Initialize(); //Only have to do this once.

for (unsigned int i = 0; i < filenames.size(); i++) {
const char* sSourceFile = filenames[i].c_str();

unsigned int iCRC = 0;
int compare = 399857339;    // TODO - you need to change this since you are checking several files

std::ifstream checkfile(sSourceFile);
if (checkfile) {

std::cout << "Checking file " << sSourceFile << "..." << std::endl;
crc32.FileCRC(sSourceFile, &iCRC);

if(iCRC == compare){
std::cout << "File " << sSourceFile << " complete!\nCRC Result: " << iCRC << std::endl;
} else {
std::cout << "File " << sSourceFile << " incomplete!\nCRC Result: " << iCRC << std::endl;
}
} else {
std::cout << "File tidak ditemukan!" << std::endl;
}
}

return 0;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector