cjass Ascii

Not published
Немного доработанная мною библиотека сделанная Bribe с хейва.
» ascii
library Ascii
{
    private int array i
    private string array c
    private string array char
    
    string Int2Char(int index)
    {
        return char[index];
    }

    int Char2Ascii(string s)
    {
        int a = i[StringHash(s) / 0x1F0748 + 0x3EA]
        if (a == 47 && s == "\\" )
        {
            a = 92
        }
        elseif (a >= 65 && a <= 90 && s != c[a])
        {
            a = a+32
        }
        
        if (((a >= 8 && a <= 13) || (a >= 32 && a <= 126)))
        {
            return a
        }
        return 0
    }

    string Ascii2Char(int a)
    {
        if ((a >= 8 && a <= 13) || (a >= 32 && a <= 126))
        {
            return c[a]
        }
        return null
    }

    string A2S(int a)
    {
        string s = ""
        if (a >= 8) then
            loop
                s = c[a - a / 256 * 256] + s
                a = a / 256
                exitwhen (a == 0)
            endloop
            return s
        endif
        return null
    }

    int S2A(string s)
    {
        int a = 0
        int l = StringLength(s)
        int i = 0
        if (l > 0) then
            loop
                a = a * 256 + Char2Ascii(SubString(s, i, i + 1))
                i = i + 1
                exitwhen (i == l)
            endloop
            return a
        endif
        return 0
    }
    
    

    callback onInit()
    {
        i[931]=8
        i[1075]=9
        i[1586]=10
        i[1340]=12
        i[412]=13

        i[198]=32
        i[1979]=33
        i[1313]=34
        i[1003]=35
        i[1264]=36
        i[983]=37
        i[1277]=38
        i[306]=39
        i[904]=40
        i[934]=41
        i[917]=42
        i[1972]=43
        i[1380]=44
        i[1985]=45
        i[869]=46

        i[1906]=47

        i[883]=48
        i[1558]=49
        i[684]=50
        i[582]=51
        i[668]=52
        i[538]=53
        i[672]=54
        i[1173]=55
        i[71]=56
        i[277]=57

        i[89]=58
        i[1141]=59
        i[39]=60
        i[1171]=61
        i[51]=62
        i[305]=63
        i[0]=64

        i[222]=65
        i[178]=66
        i[236]=67
        i[184]=68
        i[1295]=69
        i[1390]=70
        i[1276]=71
        i[203]=72
        i[1314]=73
        i[209]=74
        i[1315]=75
        i[170]=76
        i[1357]=77
        i[1343]=78
        i[1397]=79
        i[1420]=80
        i[1419]=81
        i[1396]=82
        i[1374]=83
        i[1407]=84
        i[499]=85
        i[1465]=86
        i[736]=87
        i[289]=88
        i[986]=89
        i[38]=90

        i[1230]=91
        i[1636]=93
        i[1416]=94
        i[1917]=95
        i[217]=96
        i[833]=123
        i[1219]=124
        i[553]=125
        i[58]=126

        c[8]="\b"
        c[9]="\t"
        c[10]="\n"
        c[12]="\f"
        c[13]="\r"

        c[32]=""
        c[33]="!"
        c[34]="\""
        c[35]="#"
        c[36]="$"
        c[37]="%"
        c[38]="&"
        c[39]="'"
        c[40]="("
        c[41]=")"
        c[42]="*"
        c[43]="+"
        c[44]=","
        c[45]="-"
        c[46]="."

        c[47]="/"

        c[48]="0"
        c[49]="1"
        c[50]="2"
        c[51]="3"
        c[52]="4"
        c[53]="5"
        c[54]="6"
        c[55]="7"
        c[56]="8"
        c[57]="9"

        c[58]=":"
        c[59]=";"
        c[60]="<"
        c[61]="="
        c[62]=">"
        c[63]="?"
        c[64]="@"

        c[65]="A"
        c[66]="B"
        c[67]="C"
        c[68]="D"
        c[69]="E"
        c[70]="F"
        c[71]="G"
        c[72]="H"
        c[73]="I"
        c[74]="J"
        c[75]="K"
        c[76]="L"
        c[77]="M"
        c[78]="N"
        c[79]="O"
        c[80]="P"
        c[81]="Q"
        c[82]="R"
        c[83]="S"
        c[84]="T"
        c[85]="U"
        c[86]="V"
        c[87]="W"
        c[88]="X"
        c[89]="Y"
        c[90]="Z"

        c[92]="\\"

        c[97]="a"
        c[98]="b"
        c[99]="c"
        c[100]="d"
        c[101]="e"
        c[102]="f"
        c[103]="g"
        c[104]="h"
        c[105]="i"
        c[106]="j"
        c[107]="k"
        c[108]="l"
        c[109]="m"
        c[110]="n"
        c[111]="o"
        c[112]="p"
        c[113]="q"
        c[114]="r"
        c[115]="s"
        c[116]="t"
        c[117]="u"
        c[118]="v"
        c[119]="w"
        c[120]="x"
        c[121]="y"
        c[122]="z"

        c[91]="["
        c[93]="]"
        c[94]="^"
        c[95]="_"
        c[96]="`"
        c[123]="{"
        c[124]="|"
        c[125]="}"
        c[126]="~"
        
        
        char[0]="0"
        char[1]="1"
        char[2]="2"
        char[3]="3"
        char[4]="4"
        char[5]="5"
        char[6]="6"
        char[7]="7"
        char[8]="8"
        char[9]="9"
        char[10]="A"
        char[11]="B"
        char[12]="C"
        char[13]="D"
        char[14]="E"
        char[15]="F"
        char[16]="G"
        char[17]="H"
        char[18]="I"
        char[19]="J"
        char[20]="K"
        char[21]="L"
        char[21]="M"
        char[22]="N"
        char[23]="O"
        char[24]="P"
        char[25]="Q"
        char[26]="R"
        char[27]="S"
        char[28]="T"
        char[29]="U"
        char[30]="V"
        char[31]="W"
        char[32]="X"
        char[33]="Y"
        char[34]="Z"
    }
}


Views: 1 603

Doc #1 - 8 years ago 0
Голосов: +0 / -0
loop
then
endif
лол.
Faion #2 - 8 years ago 0
Голосов: +0 / -0
Лень было полностью переписывать, главное что скомпилилось :3
Doc #3 - 8 years ago 1
Голосов: +1 / -0
Find&Replace ;D
Faion #4 - 8 years ago 0
Голосов: +0 / -0
Ну так и быть, после работы подправлю :D
ScorpioT1000 #5 - 8 years ago 0
Голосов: +0 / -0
Может всетаки опубликовать по-человечески?
Faion #6 - 8 years ago -4
Голосов: +0 / -4
А нафиг? Я по большей части писал для самого себя, что бы либы были под рукой :) Норм описания писать лень, по этому тут и накидал :)