ASCII Zeichen werden nicht erkannt
Verfasst: 03.03.2008 22:51
Ich programmiere gerade einen File En/Decoder (einen ziemlich simplen aber egal)
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)
Immer wenn der Debugger eine negative Zahl ausspuckt wird der vorherige erkannte Buchstabe verwendet. Muss ich jetzt alle Zeichen die nicht erkannt werden so ändern, dass sie erkannt werden oder geht das auch anders?
hier mal der Code:
Danke Tompazi
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