Advertisement
Guest User

Untitled

a guest
Oct 15th, 2012
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.55 KB | None | 0 0
  1. void decodeer(ifstream &invoer, ofstream &uitvoer){
  2.    char prevkar = '$'; //vorige karakter (voor vergelijking); $ = default
  3.    char kar; //huidig karakter
  4.    int n = 0; // teller voor hoe vaak een karakter nog uitgevoerd moet worden
  5.    int aantalTekensUit = 0; //teller voor grootte outputbestand
  6.    int tellertje = 0; //teller voor voorloopnullen
  7.    char onthoudLetter = '@'; //als een letter onthouden moet worden gebruiken we deze
  8.    bool dubbelebackslash = false; //bool voor dubbele backslashes
  9.    int aantalslash = 0; //aantal slashes dat de decodeerder tegenkomt
  10.  
  11.    kar = invoer.get();
  12.    while (!invoer.eof())
  13.    {      
  14.       if (kar == '0')      
  15.          tellertje++;      
  16.  
  17.       if (kar == '\\')
  18.          aantalslash++;
  19.        
  20.       else if (prevkar != '\\')
  21.          aantalslash = 0;
  22.    
  23.       if (prevkar == '\\' && isGetal(kar)
  24.           uitvoer << kar;
  25.    
  26.       if (isLetter(kar))
  27.           uitvoer << kar;
  28.  
  29.       if (isGetal(kar) && (prevkar != '\\' || dubbelebackslash))
  30.              n = 10*n + kar-'0';
  31.                                
  32.       else {
  33.          n = omgekeerdDecodeer(n, tellertje);
  34.          tellertje = 0;
  35.          
  36.          while (n > 1){      
  37.             uitvoer << onthoudLetter;
  38.             n--;
  39.          }//while
  40.      
  41.          n = 0;
  42.          onthoudLetter = kar;
  43.          
  44.          if (aantalslash != 1)
  45.             uitvoer.put(kar);
  46.  
  47.       }//else
  48.      
  49.       if (aantalslash == 2)
  50.           dubbelebackslash = true;
  51.       else
  52.           dubbelebackslash = false;    
  53.    
  54.       aantalTekensUit++;
  55.       prevkar = kar;  
  56.       kar = invoer.get();          
  57.    }//while
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement