История изменений
Исправление LightDiver, (текущая версия) :
Чот не совпадает..
function numeCod(str)
local rez
local r
local hexstr = "0123456789ABCDEFGHIJKLMNOPQRSTUVWZYZabcdefghijklmnopqrstuvwxyzАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя"
local len = string.utf8len(str)
local lenH = string.utf8len(hexstr)
for j = 1, len do
for i = 1, lenH do
local r1 = string.utf8sub(hexstr,i,i)
if r1 == string.utf8sub(str,j,j) then
if j == 1 and j ~= len then
r = i*128
elseif j ~= 1 and j ~= len then
r = (tonumber(r) + i) * 128
elseif j == 1 and j == len then
r = i
elseif j ~= 1 and j == len then
r = tonumber(r) + i
end
break
end
end
end
print(r)
end
Или я дурак. Шаг первый: умножаем номер первого символа на основание. У меня это 128. Шаг второй: прибавляем полученное к номеру второго символа и умножаем все на основание.. Шаг третий: Прибавляем номер последнего символа. И получаем.. Фигню получаем.
беру я numCod(15746), получаю «ы2». Беру numeCod(«ы2»), получаю 15875. Близко, но не то. Где я дурак?
Я где то на шаг ошибаюсь: FF у меня 2064, а 2064 получаются, как GG
Исправление LightDiver, :
Чот не совпадает..
function numeCod(str)
local rez
local r
local hexstr = "0123456789ABCDEFGHIJKLMNOPQRSTUVWZYZabcdefghijklmnopqrstuvwxyzАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя"
local len = string.utf8len(str)
local lenH = string.utf8len(hexstr)
for j = 1, len do
for i = 1, lenH do
local r1 = string.utf8sub(hexstr,i,i)
if r1 == string.utf8sub(str,j,j) then
if j == 1 then
r = i*128
elseif j ~= 1 and j ~= len then
r = (tonumber(r) + i) * 128
elseif j == len then
r = tonumber(r) + i
end
break
end
end
end
print(r)
end
Или я дурак. Шаг первый: умножаем номер первого символа на основание. У меня это 128. Шаг второй: прибавляем полученное к номеру второго символа и умножаем все на основание.. Шаг третий: Прибавляем номер последнего символа. И получаем.. Фигню получаем.
беру я numCod(15746), получаю «ы2». Беру numeCod(«ы2»), получаю 15875. Близко, но не то. Где я дурак?
Исправление LightDiver, :
Чот не совпадает..
function numeCod(str)
local rez
local r
local hexstr = "0123456789ABCDEFGHIJKLMNOPQRSTUVWZYZabcdefghijklmnopqrstuvwxyzАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя"
local len = string.utf8len(str)
local lenH = string.utf8len(hexstr)
for j = 1, len do
for i = 1, lenH do
local r1 = string.utf8sub(hexstr,i,i)
if r1 == string.utf8sub(str,j,j) then
if j == 1 then
r = i*128
elseif j ~= 1 and j ~= len then
r = (tonumber(r) + i) * 128
elseif j == len then
r = tonumber(r) + i
end
break
end
end
end
print(r)
end
Или я дурак. Шаг первый: умножаем номер первого символа на основание. У меня это 128. Шаг второй: прибавляем полученное к номеру второго символа и умножаем все на основание.. Шаг третий: Прибавляем номер последнего символа. И получаем.. Фигню получаем.
беру я numCod(15746), получаю «ы2». Беру numeCod(«ъ1»), получаю 15875. Близко, но не то. Где я дурак?
Исправление LightDiver, :
Чот не совпадает..
function numeCod(str)
local rez
local r
local hexstr = "0123456789ABCDEFGHIJKLMNOPQRSTUVWZYZabcdefghijklmnopqrstuvwxyzАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя"
local len = string.utf8len(str)
local lenH = string.utf8len(hexstr)
for j = 1, len do
for i = 1, lenH do
local r1 = string.utf8sub(hexstr,i,i)
if r1 == string.utf8sub(str,j,j) then
if j == 1 then
r = i*128
elseif j ~= 1 and j ~= len then
r = (tonumber(r) + i) * 128
elseif j == len then
r = tonumber(r) + i
end
break
end
end
end
print(r)
end
Или я дурак. Шаг первый: умножаем номер первого символа на основание. У меня это 128. Шаг второй: прибавляем полученное к номеру второго символа и умножаем все на основание.. Шаг третий: Прибавляем номер последнего символа. И получаем.. Фигню получаем.
беру я numCod(15617), получаю «ъ1». Беру numeCod(«ъ1»), получаю 15745. Близко, но не то. Где я дурак?
Исходная версия LightDiver, :
Чот не совпадает..
function numeCod(str)
local rez
local r
local hexstr = "0123456789ABCDEFGHIJKLMNOPQRSTUVWZYZabcdefghijklmnopqrstuvwxyzАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя"
local len = string.utf8len(str)
local lenH = string.utf8len(hexstr)
for j = 1, len do
for i = 1, lenH do
local r1 = string.utf8sub(hexstr,i,i)
if r1 == string.utf8sub(str,j,j) then
if j == 1 then
r = i*128
elseif j ~= 1 and j ~= len then
r = (tonumber(r) + i) * 128
elseif j == len then
r = tonumber(r) + 1
end
break
end
end
end
print(r)
end
Или я дурак. Шаг первый: умножаем номер первого символа на основание. У меня это 128. Шаг второй: прибавляем полученное к номеру второго символа и умножаем все на основание.. Шаг третий: Прибавляем номер последнего символа. И получаем.. Фигню получаем.
беру я numCod(15617), получаю «ъ1». Беру numeCod(«ъ1»), получаю 15745. Близко, но не то. Где я дурак?