14 years
edited 8 years
Ascii - your resource for getting the ordinal value of a char or the char value of an integer.
1 2 library Ascii /* v1.1.0.0 Nestharus/Bribe
3 ************************************************************************************4 *5 * function Char2Ascii takes string s returns integer6 * integer ascii = Char2Ascii("F")7 *8 * function Ascii2Char takes integer a returns string9 * string char = Ascii2Char('F')10 *11 * function A2S takes integer a returns string12 * string rawcode = A2S('CODE')13 *14 * function S2A takes string s returns integer15 * integer rawcode = S2A("CODE")16 *17 ************************************************************************************/18 globals19 private integer array i //hash
20 private integer array h //hash2
21 private integer array y //hash3
22 private string array c //char
23 endglobals24 function Char2Ascii takes string p returns integer
25 local integer z = i[StringHash(p)/0x1F0748+0x40D]
26 if (c[z] != p) then
27 if (c[z - 32] != p) then
28 if (c[h[z]] != p) then
29 if (c[y[z]] != p) then
30 if (c[83] != p) then
31 debug call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,60,"ASCII ERROR: INVALID CHARACTER: " + p)
32 return 0
33 endif34 return 83
35 endif36 return y[z]
37 endif38 return h[z]
39 endif40 return z - 32
41 endif42 return z43 endfunction44 function Ascii2Char takes integer a returns string
45 return c[a]
46 endfunction47 function A2S takes integer a returns string
48 local string s=""
49 loop50 set s=c[a-a/256*256]+s
51 set a=a/256
52 exitwhen 0==a
53 endloop54 return s55 endfunction56 function S2A takes string s returns integer
57 local integer a=0
58 local integer l=StringLength(s)
59 local integer j=0
60 local string m
61 local integer h
62 loop63 exitwhen j==l
64 set a = a*256 + Char2Ascii(SubString(s,j,j+1))
65 set j=j+1
66 endloop67 return a68 endfunction69 private module Init
70 private static method onInit takes nothing returns nothing
71 set i[966] = 8
72 set i[1110] = 9
73 set i[1621] = 10
74 set i[1375] = 12
75 set i[447] = 13
76 set i[233] = 32
77 set i[2014] = 33
78 set i[1348] = 34
79 set i[1038] = 35
80 set i[1299] = 36
81 set i[1018] = 37
82 set i[1312] = 38
83 set i[341] = 39
84 set i[939] = 40
85 set i[969] = 41
86 set i[952] = 42
87 set i[2007] = 43
88 set i[1415] = 44
89 set i[2020] = 45
90 set i[904] = 46
91 set i[1941] = 47
92 set i[918] = 48
93 set i[1593] = 49
94 set i[719] = 50
95 set i[617] = 51
96 set i[703] = 52
97 set i[573] = 53
98 set i[707] = 54
99 set i[1208] = 55
100 set i[106] = 56
101 set i[312] = 57
102 set i[124] = 58
103 set i[1176] = 59
104 set i[74] = 60
105 set i[1206] = 61
106 set i[86] = 62
107 set i[340] = 63
108 set i[35] = 64
109 set i[257] = 65
110 set i[213] = 66
111 set i[271] = 67
112 set i[219] = 68
113 set i[1330] = 69
114 set i[1425] = 70
115 set i[1311] = 71
116 set i[238] = 72
117 set i[1349] = 73
118 set i[244] = 74
119 set i[1350] = 75
120 set i[205] = 76
121 set i[1392] = 77
122 set i[1378] = 78
123 set i[1432] = 79
124 set i[1455] = 80
125 set i[1454] = 81
126 set i[1431] = 82
127 set i[1409] = 83
128 set i[1442] = 84
129 set i[534] = 85
130 set i[1500] = 86
131 set i[771] = 87
132 set i[324] = 88
133 set i[1021] = 89
134 set i[73] = 90
135 set i[1265] = 91
136 set i[1941] = 92
137 set i[1671] = 93
138 set i[1451] = 94
139 set i[1952] = 95
140 set i[252] = 96
141 set i[257] = 97
142 set i[213] = 98
143 set i[271] = 99
144 set i[219] = 100
145 set i[1330] = 101
146 set i[1425] = 102
147 set i[1311] = 103
148 set i[238] = 104
149 set i[1349] = 105
150 set i[244] = 106
151 set i[1350] = 107
152 set i[205] = 108
153 set i[1392] = 109
154 set i[1378] = 110
155 set i[1432] = 111
156 set i[1455] = 112
157 set i[1454] = 113
158 set i[1431] = 114
159 set i[1409] = 115
160 set i[1442] = 116
161 set i[534] = 117
162 set i[1500] = 118
163 set i[771] = 119
164 set i[324] = 120
165 set i[1021] = 121
166 set i[73] = 122
167 set i[868] = 123
168 set i[1254] = 124
169 set i[588] = 125
170 set i[93] = 126
171 set i[316] = 161
172 set i[779] = 162
173 set i[725] = 163
174 set i[287] = 164
175 set i[212] = 165
176 set i[7] = 166
177 set i[29] = 167
178 set i[1958] = 168
179 set i[1009] = 169
180 set i[1580] = 170
181 set i[1778] = 171
182 set i[103] = 172
183 set i[400] = 174
184 set i[1904] = 175
185 set i[135] = 176
186 set i[1283] = 177
187 set i[469] = 178
188 set i[363] = 179
189 set i[550] = 180
190 set i[1831] = 181
191 set i[1308] = 182
192 set i[1234] = 183
193 set i[1017] = 184
194 set i[1093] = 185
195 set i[1577] = 186
196 set i[606] = 187
197 set i[1585] = 188
198 set i[1318] = 189
199 set i[980] = 190
200 set i[1699] = 191
201 set i[1292] = 192
202 set i[477] = 193
203 set i[709] = 194
204 set i[1600] = 195
205 set i[2092] = 196
206 set i[50] = 197
207 set i[546] = 198
208 set i[408] = 199
209 set i[853] = 200
210 set i[205] = 201
211 set i[411] = 202
212 set i[1311] = 203
213 set i[1422] = 204
214 set i[1808] = 205
215 set i[457] = 206
216 set i[1280] = 207
217 set i[614] = 208
218 set i[1037] = 209
219 set i[237] = 210
220 set i[1409] = 211
221 set i[1023] = 212
222 set i[1361] = 213
223 set i[695] = 214
224 set i[161] = 215
225 set i[1645] = 216
226 set i[1822] = 217
227 set i[644] = 218
228 set i[1395] = 219
229 set i[677] = 220
230 set i[1677] = 221
231 set i[881] = 222
232 set i[861] = 223
233 set i[1408] = 224
234 set i[1864] = 225
235 set i[1467] = 226
236 set i[1819] = 227
237 set i[1971] = 228
238 set i[949] = 229
239 set i[774] = 230
240 set i[1828] = 231
241 set i[865] = 232
242 set i[699] = 233
243 set i[786] = 234
244 set i[1806] = 235
245 set i[1286] = 236
246 set i[1128] = 237
247 set i[1490] = 238
248 set i[1720] = 239
249 set i[1817] = 240
250 set i[729] = 241
251 set i[1191] = 242
252 set i[1164] = 243
253 set i[413] = 244
254 set i[349] = 245
255 set i[1409] = 246
256 set i[660] = 247
257 set i[2016] = 248
258 set i[1087] = 249
259 set i[1497] = 250
260 set i[753] = 251
261 set i[1579] = 252
262 set i[1456] = 253
263 set i[606] = 254
264 set i[1625] = 255
265 set h[92] = 47
266 set h[201] = 108
267 set h[201] = 76
268 set h[203] = 103
269 set h[203] = 71
270 set h[246] = 115
271 set h[246] = 83
272 set h[246] = 211
273 set h[254] = 187
274 set y[201] = 108
275 set y[203] = 103
276 set y[246] = 115
277 278 set c[8]="\b"
279 set c[9]="\t"
280 set c[10]="\n"
281 set c[12]="\f"
282 set c[13]="\r"
283 set c[32]=" "
284 set c[33]="!"
285 set c[34]="\""
286 set c[35]="#"
287 set c[36]="$"
288 set c[37]="%"
289 set c[38]="&"
290 set c[39]="'"
291 set c[40]="("
292 set c[41]=")"
293 set c[42]="*"
294 set c[43]="+"
295 set c[44]=","
296 set c[45]="-"
297 set c[46]="."
298 set c[47]="/"
299 set c[48]="0"
300 set c[49]="1"
301 set c[50]="2"
302 set c[51]="3"
303 set c[52]="4"
304 set c[53]="5"
305 set c[54]="6"
306 set c[55]="7"
307 set c[56]="8"
308 set c[57]="9"
309 set c[58]=":"
310 set c[59]=";"
311 set c[60]="<"
312 set c[61]="="
313 set c[62]=">"
314 set c[63]="?"
315 set c[64]="@"
316 set c[65]="A"
317 set c[66]="B"
318 set c[67]="C"
319 set c[68]="D"
320 set c[69]="E"
321 set c[70]="F"
322 set c[71]="G"
323 set c[72]="H"
324 set c[73]="I"
325 set c[74]="J"
326 set c[75]="K"
327 set c[76]="L"
328 set c[77]="M"
329 set c[78]="N"
330 set c[79]="O"
331 set c[80]="P"
332 set c[81]="Q"
333 set c[82]="R"
334 set c[83]="S"
335 set c[84]="T"
336 set c[85]="U"
337 set c[86]="V"
338 set c[87]="W"
339 set c[88]="X"
340 set c[89]="Y"
341 set c[90]="Z"
342 set c[91]="["
343 set c[92]="\\"
344 set c[93]="]"
345 set c[94]="^"
346 set c[95]="_"
347 set c[96]="`"
348 set c[97]="a"
349 set c[98]="b"
350 set c[99]="c"
351 set c[100]="d"
352 set c[101]="e"
353 set c[102]="f"
354 set c[103]="g"
355 set c[104]="h"
356 set c[105]="i"
357 set c[106]="j"
358 set c[107]="k"
359 set c[108]="l"
360 set c[109]="m"
361 set c[110]="n"
362 set c[111]="o"
363 set c[112]="p"
364 set c[113]="q"
365 set c[114]="r"
366 set c[115]="s"
367 set c[116]="t"
368 set c[117]="u"
369 set c[118]="v"
370 set c[119]="w"
371 set c[120]="x"
372 set c[121]="y"
373 set c[122]="z"
374 set c[123]="{"
375 set c[124]="|"
376 set c[125]="}"
377 set c[126]="~"
378 set c[128] = "€"
379 set c[130] = ","
380 set c[131] = "ƒ"
381 set c[132] = ",,"
382 set c[133] = "..."
383 set c[134] = "†"
384 set c[135] = "‡"
385 set c[136] = "ˆ"
386 set c[137] = "‰"
387 set c[138] = "Š"
388 set c[139] = "‹"
389 set c[140] = "Œ"
390 set c[142] = "Ž"
391 set c[145] = "'"
392 set c[146] = "'"
393 set c[147] = """
394 set c[148] = """
395 set c[149] = "•"
396 set c[150] = "–"
397 set c[151] = "—"
398 set c[152] = "˜"
399 set c[153] = "™"
400 set c[154] = "š"
401 set c[155] = "›"
402 set c[156] = "œ"
403 set c[158] = "ž"
404 set c[159] = "Ÿ"
405 set c[160] = " "
406 set c[161] = "¡"
407 set c[162] = "¢"
408 set c[163] = "£"
409 set c[164] = "¤"
410 set c[165] = "¥"
411 set c[166] = "¦"
412 set c[167] = "§"
413 set c[168] = "¨"
414 set c[169] = "©"
415 set c[170] = "ª"
416 set c[171] = "«"
417 set c[172] = "¬"
418 set c[174] = "®"
419 set c[175] = "¯"
420 set c[176] = "°"
421 set c[177] = "±"
422 set c[178] = "²"
423 set c[179] = "³"
424 set c[180] = "´"
425 set c[181] = "µ"
426 set c[182] = "¶"
427 set c[183] = "·"
428 set c[184] = "¸"
429 set c[185] = "¹"
430 set c[186] = "º"
431 set c[187] = "»"
432 set c[188] = "¼"
433 set c[189] = "½"
434 set c[190] = "¾"
435 set c[191] = "¿"
436 set c[192] = "À"
437 set c[193] = "Á"
438 set c[194] = "Â"
439 set c[195] = "Ã"
440 set c[196] = "Ä"
441 set c[197] = "Å"
442 set c[198] = "Æ"
443 set c[199] = "Ç"
444 set c[200] = "È"
445 set c[201] = "É"
446 set c[202] = "Ê"
447 set c[203] = "Ë"
448 set c[204] = "Ì"
449 set c[205] = "Í"
450 set c[206] = "Î"
451 set c[207] = "Ï"
452 set c[208] = "Ð"
453 set c[209] = "Ñ"
454 set c[210] = "Ò"
455 set c[211] = "Ó"
456 set c[212] = "Ô"
457 set c[213] = "Õ"
458 set c[214] = "Ö"
459 set c[215] = "×"
460 set c[216] = "Ø"
461 set c[217] = "Ù"
462 set c[218] = "Ú"
463 set c[219] = "Û"
464 set c[220] = "Ü"
465 set c[221] = "Ý"
466 set c[222] = "Þ"
467 set c[223] = "ß"
468 set c[224] = "à"
469 set c[225] = "á"
470 set c[226] = "â"
471 set c[227] = "ã"
472 set c[228] = "ä"
473 set c[229] = "å"
474 set c[230] = "æ"
475 set c[231] = "ç"
476 set c[232] = "è"
477 set c[233] = "é"
478 set c[234] = "ê"
479 set c[235] = "ë"
480 set c[236] = "ì"
481 set c[237] = "í"
482 set c[238] = "î"
483 set c[239] = "ï"
484 set c[240] = "ð"
485 set c[241] = "ñ"
486 set c[242] = "ò"
487 set c[243] = "ó"
488 set c[244] = "ô"
489 set c[245] = "õ"
490 set c[246] = "ö"
491 set c[247] = "÷"
492 set c[248] = "ø"
493 set c[249] = "ù"
494 set c[250] = "ú"
495 set c[251] = "û"
496 set c[252] = "ü"
497 set c[253] = "ý"
498 set c[254] = "þ"
499 set c[255] = "ÿ"
500 endmethod501 endmodule502 private struct Inits extends array
503 implement Init504 endstruct505 endlibrary506