source: liacs/pm/backup/encode.cc@ 21

Last change on this file since 21 was 2, checked in by Rick van der Zwet, 15 years ago

Initial import of data of old repository ('data') worth keeping (e.g. tracking
means of URL access statistics)

  • Property svn:executable set to *
File size: 2.5 KB
Line 
1//encode.cc
2//het verwijderen van comments in een file en het coderen met een
3//bepaalde sleutel
4//Autor: Rick van der Zwet
5
6#include <iostream>
7#include <fstream>
8#include <string>
9using namespace std;
10
11void Encode(string FileName, char passwd[])
12{
13 ifstream Invoer(FileName.c_str(), ios::in);
14 FileName += ".crp";
15 ofstream Uitvoer(FileName.c_str(), ios::out);
16
17 char ch = ' '; //eerste karakter
18 int LetterPositie = 0;
19 int StringLengte = strlen(passwd) - 1;
20 int SlashAantal = 0;
21 bool Loop = false;
22 while (Invoer.get(ch)) //zolang er karacters in de file zitten
23 {
24 if (ch == 47) //char is een slash
25 {
26 SlashAantal++;
27 if (SlashAantal == 2) //als er 2 slashjes achter elkaar staan
28 {
29 Loop = true;
30 while(Loop == true) // ga net zolang char's uitlezen tot je aan het eind van de regel bent
31 {
32 Invoer.get(ch);
33 if (ch == 13)
34 {
35 Uitvoer.put(ch);
36 Invoer.get(ch); //aanname LF na CR (Windows)
37 }
38 if (ch == 10)
39 {
40 Uitvoer.put(ch);
41 Loop = false;
42 }
43 }
44 SlashAantal = 0;
45 }
46 }
47 else //char is geen slash
48 {
49 if (SlashAantal == 1) // er is maar een slash gevonden. Zorg er voor dat die toegevoegd aan de file wordt
50 {
51 Uitvoer.put(passwd[LetterPositie] - 'a' + '/');
52 if (LetterPositie < StringLengte) { LetterPositie++; } else { LetterPositie = 0; }
53 SlashAantal = 0;
54 }
55
56 if (( ch <= '~' ) && ( ch >= ' '))
57 {
58 int EncodedChar = int(passwd[LetterPositie] - 'a' + ch);
59 if (EncodedChar > 126 )
60 {
61 EncodedChar = EncodedChar - 95;
62 }
63 Uitvoer.put(EncodedChar);
64 if (LetterPositie < StringLengte) { LetterPositie++; } else { LetterPositie = 0; }
65 }
66 else
67 {
68 Uitvoer.put(ch);
69 }
70 }
71 }
72
73 Invoer.close();
74 Uitvoer.close();
75
76} //end Encode
77
78void Decode(string FileName, char passwd[])
79{
80 ifstream Invoer(FileName.c_str(), ios::in);
81 FileName = "twst";
82 ofstream Uitvoer(FileName.c_str(), ios::out);
83
84 char ch = ' ';
85 int LetterPositie = 0;
86 int StringLengte = strlen(passwd) - 1;
87 int DecodedChar = 0;
88
89 while (Invoer.get(ch))
90 {
91 if (( ch <= '~' ) && ( ch >= ' '))
92 {
93 DecodedChar = int( ch - (passwd[LetterPositie] - 'a'));
94
95 if (LetterPositie < StringLengte) { LetterPositie++; } else { LetterPositie = 0; }
96
97 if (DecodedChar < 32 )
98 {
99 DecodedChar = DecodedChar + 95;
100 }
101
102 Uitvoer.put(DecodedChar);
103 }
104 else
105 {
106 Uitvoer.put(ch);
107 }
108 }
109 Invoer.close();
110 Uitvoer.close();
111}
112
113
114
115int main()
116{
117 char passwd[] = {'b', 'i', 'g'};
118 Encode("code1.cc", passwd);
119 Decode("code1.cc.crp", passwd);
120 return 0;
121} //end Main
122
Note: See TracBrowser for help on using the repository browser.