//encode.cc //het verwijderen van comments in een file en het coderen met een //bepaalde sleutel //Autor: Rick van der Zwet #include #include #include using namespace std; void Encode(string FileName, char passwd[]) { ifstream Invoer(FileName.c_str(), ios::in); FileName += ".crp"; ofstream Uitvoer(FileName.c_str(), ios::out); char ch = ' '; //eerste karakter int LetterPositie = 0; int StringLengte = strlen(passwd) - 1; int SlashAantal = 0; bool Loop = false; while (Invoer.get(ch)) //zolang er karacters in de file zitten { if (ch == 47) //char is een slash { SlashAantal++; if (SlashAantal == 2) //als er 2 slashjes achter elkaar staan { Loop = true; while(Loop == true) // ga net zolang char's uitlezen tot je aan het eind van de regel bent { Invoer.get(ch); if (ch == 13) { Uitvoer.put(ch); Invoer.get(ch); //aanname LF na CR (Windows) } if (ch == 10) { Uitvoer.put(ch); Loop = false; } } SlashAantal = 0; } } else //char is geen slash { if (SlashAantal == 1) // er is maar een slash gevonden. Zorg er voor dat die toegevoegd aan de file wordt { Uitvoer.put(passwd[LetterPositie] - 'a' + '/'); if (LetterPositie < StringLengte) { LetterPositie++; } else { LetterPositie = 0; } SlashAantal = 0; } if (( ch <= '~' ) && ( ch >= ' ')) { int EncodedChar = int(passwd[LetterPositie] - 'a' + ch); if (EncodedChar > 126 ) { EncodedChar = EncodedChar - 95; } Uitvoer.put(EncodedChar); if (LetterPositie < StringLengte) { LetterPositie++; } else { LetterPositie = 0; } } else { Uitvoer.put(ch); } } } Invoer.close(); Uitvoer.close(); } //end Encode void Decode(string FileName, char passwd[]) { ifstream Invoer(FileName.c_str(), ios::in); FileName = "twst"; ofstream Uitvoer(FileName.c_str(), ios::out); char ch = ' '; int LetterPositie = 0; int StringLengte = strlen(passwd) - 1; int DecodedChar = 0; while (Invoer.get(ch)) { if (( ch <= '~' ) && ( ch >= ' ')) { DecodedChar = int( ch - (passwd[LetterPositie] - 'a')); if (LetterPositie < StringLengte) { LetterPositie++; } else { LetterPositie = 0; } if (DecodedChar < 32 ) { DecodedChar = DecodedChar + 95; } Uitvoer.put(DecodedChar); } else { Uitvoer.put(ch); } } Invoer.close(); Uitvoer.close(); } int main() { char passwd[] = {'b', 'i', 'g'}; Encode("code1.cc", passwd); Decode("code1.cc.crp", passwd); return 0; } //end Main