Filehost.ro - gazduire fisiere
Enter To: WWW.TYPHOON.RO
Enter To: WWW.TYPHOON.RO Enter To: WWW.TYPHOON.RO Enter To: WWW.TYPHOON.RO Enter To: WWW.TYPHOON.RO Enter To: WWW.TYPHOON.RO
Nou pe simpatie:
Bianca777 Profile
Femeie
24 ani
Brasov
cauta Barbat
27 - 64 ani
Enter To: WWW.TYPHOON.ROInregistrareLoginPozeNu sunteti logat. Lista Forumurilor Pe Tematici
Enter To: WWW.TYPHOON.RO / [#] Programming and More /

[C++] file merger

Pagini: 1 Moderat de TinKode
#1
HellGate
Administrator
Din: Deva
Postari: 1062
#include iostream
#include windows.h
#include string
#include vector

using namespace std;

void fListDir(int iRecurse,string sDir,vectorstring& vsListDir,vectorstring& vsListFile);

int main(int argc,char argv[])
{
   if(argc!=4) exit(0);
   vectorstring vsListDir;
   vectorstring vsListFile;
   string sDir = argv[1];
   string sMerged = argv[2];
   int iRecurse = atoi(argv[3]);
   FILE fsMerged;
   FILE fsFile;
   char cLine[2049];
   cout  [+] Merging all files in   sDir   into   sMerged  endl;
   fListDir(iRecurse,sDir,vsListDir,vsListFile);
   fsMerged = fopen(sMerged.c_str(),a);
   if(!fsMerged){
      cout  [-] Couldn't open   sMerged  endl;
      exit(0);
   }
   else{
      for(int x = 0;xvsListFile.size();x++){
         string sFile = vsListFile.at(x);
         if(sFile != sMerged){
            cout  Opening   sFile   - ;
            fsFile = fopen(sFile.c_str(),r);
            if(!fsFile){
               cout  Failed;
            }
            else{
               cout  merging - ;
               while(!feof(fsFile)){
                  memset(cLine, '0', sizeof(cLine));
                  fread(cLine,sizeof(cLine),1,fsFile);
                  cLine[2049] = '0';
                  fputs(cLine,fsMerged);
               }
               fclose(fsFile);
               cout  merged  endl;
            }
         }
      }
      fclose(fsMerged);
   }
   return 0;
}

void fListDir(int iRecurse,string sDir,vectorstring& vsListDir,vectorstring& vsListFile)
{
   WIN32_FIND_DATA FileData;
   HANDLE fHnd;
   cout  Getting files in   sDir  endl;
   fHnd = FindFirstFile((sDir+).c_str(),&FileData);
   if(fHnd != INVALID_HANDLE_VALUE){
      while(FindNextFile(fHnd,&FileData)){
         if((FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && !(FileData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) && strcmp(FileData.cFileName, ..) != 0){
            vsListDir.push_back(FileData.cFileName);
            if(iRecurse){
               fListDir(iRecurse,sDir ++ FileData.cFileName,vsListDir,vsListFile);
            }
         }
         if(!(FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && !(FileData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) && strcmp(FileData.cFileName, ..) != 0){
            vsListFile.push_back(sDir ++ FileData.cFileName);
         }
      }
   }
   FindClose(fHnd);


_______________________________________

Contact:
Email -
Site -www.fbi-center.com

 
   
#2
luyzette
Veioza
Postari: 47
ma jur ca si eu fac programe in c++ la liceu, am inteles o parte din ce ai facut, dar zau ca nu am inteles ce face...:| eu nu am invatza inca asa ceva....

_______________________________________


 
   
Pagini: 1  
Mergi la