Advertisement
Guest User

Untitled

a guest
Apr 4th, 2020
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.79 KB | None | 0 0
  1. int main(int argc, char** argv)
  2. {
  3. #if 0
  4.     try
  5.     {
  6.         tbb::task_scheduler_init init(tbb::task_scheduler_init::default_num_threads());  // Explicit number of threads
  7.  
  8.         std::vector<boost::property_tree::ptree> xmls;
  9.         xmls.resize(argc - 1);
  10.    
  11.         tbb::parallel_for(tbb::blocked_range<unsigned int>(1, argc), XmlParser(xmls, argc, argv));
  12.         tbb::parallel_for(tbb::blocked_range<unsigned int>(0, xmls.size()), XmlProcessor(xmls));
  13.     }
  14.     catch(std::exception& e)
  15.     {
  16.         std::cerr << e.what() << std::endl;
  17.     }
  18.     catch(...)
  19.     {
  20.         std::cerr << "An unknown exception was thrown!" << std::endl;
  21.     }
  22. #endif
  23.     static CEterPackManager eterPack;
  24.     SetLogLevel(2);
  25.     OpenLogFile(true);
  26.     OpenConsoleWindow();
  27.     HANDLE hThread = GetCurrentThread();
  28.     SetThreadPriority(hThread, THREAD_PRIORITY_HIGHEST);
  29.  
  30.     if (!parse(argc, argv))
  31.         return EXIT_FAILURE;
  32.  
  33.     if (CEterPackManager::Instance().LoadArchive(wArchiveName))
  34.     {
  35.         CMappedFile mapFile;
  36.         LPCVOID pData = nullptr;
  37.         CFileBase writeFile;
  38.         std::string exlist = "file_list.txt";
  39.         std::ifstream ifs(exlist);
  40.  
  41.         if (!ifs.is_open())
  42.         {
  43.             TraceError("Can't open %s", exlist.c_str());
  44.             return EXIT_FAILURE;
  45.         }
  46.  
  47.         std::string line;
  48.         while (std::getline(ifs, line))
  49.         {
  50.             if (CEterPackManager::Instance().GetFromPack(mapFile, line.c_str(), &pData)) {
  51.                 auto folderName = "unpacked/" + convert_from_wstring(wArchiveName) + '/';
  52.                 const auto& fileName = folderName + ReplaceAll(line, "d:/", "");
  53.                 inlinePathCreate(fileName.c_str());
  54.                 writeFile.Create(fileName.c_str(), CFileBase::FILEMODE_WRITE);
  55.                 writeFile.Write(pData, mapFile.Size());
  56.                 Tracenf("Extracted: %s -> %s", line.c_str(), fileName.c_str());
  57.             }
  58.         }
  59.         writeFile.Destroy();
  60.         ifs.close();
  61.     }
  62.     //CEterPackManager::instance().UnloadArchive(wArchiveName);
  63.     return EXIT_SUCCESS;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement