0
3
13 лет назад
0

» WarCraft 3 / Библиотека функций

Разбирался в наработке WaveGenerator (Автор - тов. silumin) и нашёл фунцию ковертирования строки "A00X" в целочисленное 'A00X' (только в 10си).
Толку наверое не много, но, как алгоритм, будет познавательна.
function S2HId takes string str returns integer
local string ASCII = "0123456789*******ABCDEFGHIJKLMNOPQRSTUVWXYZ******abcdefghigklmnopqrstuvwxyz"
local string s1 = SubString(str,0,1)
local string s2 = SubString(str,1,2)
local string s3 = SubString(str,2,3)
local string s4 = SubString(str,3,4)
local string S
local integer i = 0
local integer i1 = 0
local integer i2 = 0
local integer i3 = 0
local integer i4 = 0
  loop
    set S = SubString(ASCII,i,i+1)
    if S==s1 then
      set i1 = 48 + i
    endif
    if S==s2 then
      set i2 = 48 + i
    endif
    if S==s3 then
      set i3 = 48 + i
    endif
    if S==s4 then
      set i4 = 48 + i
    endif
    exitwhen i==74
    set i = i + 1
  endloop
return 16777216*i1+65536*i2+256*i3+i4
endfunction