#include #include #include using namespace std; void Intro() { cout << "---------------------------------------------" << endl << "| University of Leiden |" << endl << "| Programmeermethoden opdracht 2 |" << endl << "| |" << endl << "| Gemaakt door: |" << endl << "| Rick van der Zwet |" << endl << "| Pascal de Vos |" << endl << "| |" << endl << "| |" << endl << "| Getest op: Unix systeem (Sun OS) |" << endl << "| Windows systeem (Win XP) |" << endl << "---------------------------------------------" << endl << endl; } //encode.cc //het verwijderen van comments in een file en het coderen met een //bepaalde sleutel void Encode(string FileName, string FileNameOutput, string passwd) { ifstream Invoer(FileName.c_str(), ios::in); ofstream Uitvoer(FileNameOutput.c_str(), ios::out); char ch = ' '; //eerste karakter int LetterPositie = 0; int StringLengte = passwd.length() - 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, string FileNameOutput, string passwd) { ifstream Invoer(FileName.c_str(), ios::in); ofstream Uitvoer(FileNameOutput.c_str(), ios::out); char ch = ' '; int LetterPositie = 0; int StringLengte = passwd.length() - 1; int DecodedChar = 0; cout << "test"; 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(); } //INVOER: Bestandnaam, woord te controleren, Of het woord vrij moet staan of niet. //UITVOER: Aantal keer dat het voorkomt. int WordCheck(string FileName, string Word, int Mogelijkheden) { int AantalKeerWoord = 0; int LetterPositie = 0; char ch = ' '; if (Mogelijkheden = 1) //voeg spaties aan het begin en het eind toe en test daar op. { Word = " " + Word + " "; } const int WoordLengte = Word.length(); //deze blijft altijd identiek dus geen variable ifstream Invoer(FileName.c_str(),ios::in); while (Invoer.get(ch)) //zolang file invoer heeft { if (LetterPositie == WoordLengte) //controleer of er een match is. { AantalKeerWoord++; LetterPositie = 0; } if (ch == char(Word[LetterPositie])) //kijk of een character overeen komt met de gezochte in het woord { LetterPositie++; } else // anders weer opnieuw beginnen { LetterPositie = 0; } } Invoer.close(); return(AantalKeerWoord); } int main() { int GekozenOptie = 0; string FileName = ""; string FileNameOutput = ""; string passwd = ""; //debug mode FileName = "test"; cout << "aantal keer " << WordCheck(FileName, "rick", "true") << endl; return(0); // Menu opties: (1) Encoderen // (2) Decoderen // (1) --> FileName invoeren --> encodeer sleutel invoeren // (2) --> FileName invoeren --> decodeer sleutel invoeren cout << "Kies uit de volgende opties:" << endl << "Encodeer een file (1)" << endl << "Decodeer een file (2)" << endl << "Beeindig het programma (q)" << endl << endl; cin >> GekozenOptie; if (GekozenOptie == 1) //door naar encoderen, filenamevrag in encoderen verwerken { cout << "voer de naam van de te coderen file in" << endl; cin >> FileName; cout << "En uw passwd" << endl; cin >> passwd; FileNameOutput = FileName + ".crp"; Encode(FileName, FileNameOutput, passwd); return(0); } else if (GekozenOptie == 2) { cout << "Voer de naam van de te decoderen file in (eindigt op .crp)" << endl; cin >> FileName; cout << "En uw password" << endl; cin >> passwd; FileNameOutput = FileName; FileNameOutput = FileNameOutput.erase(FileNameOutput.length() - 3) + "drp"; Decode(FileName, FileNameOutput, passwd); return(0); } else { cout << "\nGoodbye\n"; return(0); } }