Warcraft 3 documentation

vJASS & Zinc Documentation
For the latest documentation about how it works vJASS and Zinc language layers for Warcraft III, please follow these links:
Jasshelper documentation - Zinc documentation - WC3 Optimizer documentation

[Snippet] Ascii

moyack · 885

0 Members and 1 Guest are viewing this topic.

[Snippet] Ascii
on: December 29, 2011, 08:16:38 PM
Category: String handling
Language: vJASS

Ascii - your resource for getting the ordinal value of a char or the char value of an integer.

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



 

Vivir aprendiendo.co - A place for learning stuff, in Spanish   Chaos Realm - The world of Game modders and wc3 addicts   Diplo, a gaming community   WC3JASS.com - The JASS Vault + vJASS and Zinc   Jetcraft - A Starcraft II mod   WormTastic Clan (wTc)