Jeden falls werden einige Zeichen beim Decodieren nicht erkannt.
Wenn ich in meine File (z.B.: Ah) schreibe es encodiere (macht es brav) dann wieder Decodiere kommt das falsche raus (z.B: Ah -> AA)
der Debugger spuckt das aus (beim Decodieren für Ah)
Code: Alles auswählen
37
A
-16
A
hier mal der Code:
Code: Alles auswählen
If OpenWindow(0,0,0,100,100,"File Encoder", #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
ButtonGadget(0,5,5,50,20,"load file")
ButtonGadget(1,5,30,50,20,"encode")
ButtonGadget(2,5,55,50,20,"decode")
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 0
file$ = OpenFileRequester("Select a file","","Text (*.txt)|*.txt",0)
Case 1
If file$
OpenFile(0,file$)
l = Lof(0)
For a = 1 To l
char = ReadCharacter(0)
If char = 65 : char$ = "%"
ElseIf char = 66: char$ = "$"
ElseIf char = 67 : char$ = "&"
ElseIf char = 68 : char$ = "!"
ElseIf char = 69 : char$ = "("
ElseIf char = 70 : char$ = ")"
ElseIf char = 71 : char$ = "="
ElseIf char = 72 : char$ = "?"
ElseIf char = 73 : char$ = "/"
ElseIf char = 74 : char$ = "["
ElseIf char = 75 : char$ = "{"
ElseIf char = 76 : char$ = "]"
ElseIf char = 77 : char$ = "}"
ElseIf char = 78 : char$ = "²"
ElseIf char = 79 : char$ = "³"
ElseIf char = 80 : char$ = "\"
ElseIf char = 81 : char$ = "°"
ElseIf char = 82 : char$ = "^"
ElseIf char = 83 : char$ = "#"
ElseIf char = 84 : char$ = "'"
ElseIf char = 85 : char$ = "+"
ElseIf char = 86 : char$ = "*"
ElseIf char = 87 : char$ = "~"
ElseIf char = 88 : char$ = "-"
ElseIf char = 89 : char$ = "."
ElseIf char = 90 : char$ = ":"
ElseIf char = 49 : char$ = "¿" ;;191
ElseIf char = 50 : char$ = "ƒ" ;;131
ElseIf char = 51 : char$ = "Æ" ;;198
ElseIf char = 52 : char$ = "§" ;;167
ElseIf char = 53 : char$ = "," ;; 44
ElseIf char = 54 : char$ = "¦" ;;166
ElseIf char = 55 : char$ = "Þ" ;;222
ElseIf char = 56 : char$ = ";" ;; 59
ElseIf char = 57 : char$ = "Î" ;;206
ElseIf char = 48 : char$ = "±" ;;177
ElseIf char = 97 : char$ = "<" ;; 60
ElseIf char = 98 : char$ = "‰" ;;137
ElseIf char = 99 : char$ = "›" ;;155
ElseIf char = 100 : char$ = "@" ;; 64
ElseIf char = 101 : char$ = "µ" ;;181
ElseIf char = 102 : char$ = "_" ;; 95
ElseIf char = 103 : char$ = "|" ;;124
ElseIf char = 104 : char$ = "ð" ;;240
ElseIf char = 105 : char$ = "‡" ;;135
ElseIf char = 106 : char$ = "ø" ;;248
ElseIf char = 107 : char$ = "†" ;;134
ElseIf char = 108 : char$ = "¤" ;;164
ElseIf char = 109 : char$ = "¶" ;;182
ElseIf char = 110 : char$ = "¯" ;;175
ElseIf char = 111 : char$ = "×" ;;215
ElseIf char = 112 : char$ = "«" ;;171
ElseIf char = 113 : char$ = "ª" ;;170
ElseIf char = 114 : char$ = " " ;; 32
ElseIf char = 115 : char$ = "’" ;;146
ElseIf char = 116 : char$ = "•" ;;149
ElseIf char = 117 : char$ = "®" ;;174
ElseIf char = 118 : char$ = " " ;;160
ElseIf char = 119 : char$ = "»" ;;187
ElseIf char = 120 : char$ = "¥" ;;165
ElseIf char = 121 : char$ = "¬" ;;172
ElseIf char = 122 : char$ = "æ" ;;230
ElseIf char = 32 : char$ = "©" ;;169
ElseIf char = 13 : char$ = "¢" ;;162
ElseIf char = 33 : char$ = "÷" ;;247
ElseIf char = 63 : char$ = "‹" ;;139
ElseIf char = 40 : char$ = "¨" ;;168
ElseIf char = 41 : char$ = "¼" ;;188
ElseIf char = 46 : char$ = "€" ;;128
Else
EndIf
text$ = text$ + char$
Next a
CloseFile(0)
CreateFile(0,file$)
WriteString(0,text$)
CloseFile(0)
text$ = ""
Else
MessageRequester("No file!!","No file loaded")
EndIf
Case 2
If file$
OpenFile(0,file$)
l = Lof(0)
For a = 1 To l
char = ReadCharacter(0)
If char = 37 : char$ = "A"
ElseIf char = 36 : char$ = "B"
ElseIf char = 38 : char$ = "C"
ElseIf char = 33 : char$ = "D"
ElseIf char = 40 : char$ = "E"
ElseIf char = 41 : char$ = "F"
ElseIf char = 61 : char$ = "G"
ElseIf char = 63 : char$ = "H"
ElseIf char = 47 : char$ = "I"
ElseIf char = 91 : char$ = "J"
ElseIf char = 123 : char$ = "K"
ElseIf char = 93 : char$ = "L"
ElseIf char = 125 : char$ = "M"
ElseIf char = 178 : char$ = "N"
ElseIf char = 179 : char$ = "O"
ElseIf char = 92 : char$ = "P"
ElseIf char = 176 : char$ = "Q"
ElseIf char = 94 : char$ = "R"
ElseIf char = 35 : char$ = "S"
ElseIf char = 39 : char$ = "T"
ElseIf char = 43 : char$ = "U"
ElseIf char = 42 : char$ = "V"
ElseIf char = 126 : char$ = "W"
ElseIf char = 45 : char$ = "X"
ElseIf char = 46 : char$ = "Y"
ElseIf char = 58 : char$ = "Z"
ElseIf char = 191 : char$ = "1" ;;191
ElseIf char = 131 : char$ = "2" ;;131
ElseIf char = 198 : char$ = "3" ;;198
ElseIf char = 167 : char$ = "4" ;;167
ElseIf char = 44 : char$ = "5" ;; 44
ElseIf char = 166 : char$ = "6" ;;166
ElseIf char = 222 : char$ = "7" ;;222
ElseIf char = 59 : char$ = "8" ;; 59
ElseIf char = 206 : char$ = "9" ;;206
ElseIf char = 177 : char$ = "0" ;;177
ElseIf char = 60 : char$ = "a" ;; 60
ElseIf char = 137 : char$ = "b" ;;137
ElseIf char = 155 : char$ = "c" ;;155
ElseIf char = 64 : char$ = "d" ;; 64
ElseIf char = 181 : char$ = "e" ;;181
ElseIf char = 95 : char$ = "f" ;; 95
ElseIf char = 124 : char$ = "g" ;;124
ElseIf char = 240 : char$ = "h" ;;240
ElseIf char = 135 : char$ = "i" ;;135
ElseIf char = 248 : char$ = "j" ;;248
ElseIf char = 134 : char$ = "k" ;;134
ElseIf char = 164 : char$ = "l" ;;164
ElseIf char = 182 : char$ = "m" ;;182
ElseIf char = 175 : char$ = "n" ;;175
ElseIf char = 215 : char$ = "o" ;;215
ElseIf char = 171 : char$ = "p" ;;171
ElseIf char = 170 : char$ = "q" ;;170
ElseIf char = 32 : char$ = "r" ;; 32
ElseIf char = 146 : char$ = "s" ;;146
ElseIf char = 149 : char$ = "t" ;;149
ElseIf char = 174 : char$ = "u" ;;174
ElseIf char = 160 : char$ = "v" ;;160
ElseIf char = 187 : char$ = "w" ;;187
ElseIf char = 165 : char$ = "x" ;;165
ElseIf char = 172 : char$ = "y" ;;172
ElseIf char = 230 : char$ = "z" ;;230
ElseIf char = 169 : char$ = " " ;;169
ElseIf char = 162 : char$ = Chr(13);;162
ElseIf char = 247 : char$ = "!" ;;247
ElseIf char = 139 : char$ = "?" ;;139
ElseIf char = 168 : char$ = "(" ;;168
ElseIf char = 188 : char$ = ")" ;;188
ElseIf char = 128 : char$ = "." ;;128
Else
EndIf
text$ = text$ + char$
Debug char
Debug char$
Next a
CloseFile(0)
CreateFile(0,file$)
WriteString(0,text$)
CloseFile(0)
text$ = ""
Else
MessageRequester("No file!!","No file loaded")
EndIf
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
Else
MessageRequester("ERROR!","ERROR!")
EndIf