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

Last change on this file since 9 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
RevLine 
[2]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.