местопонаселениюрегионы

Для документации этого модуля может быть создана страница Модуль:МестоПоНаселениюРегионы/doc

require('Module:No globals') local bit32 = require( 'bit32' )  local ArrayPopSRC= mw.loadData('Module:Statistical/RUS-AAA')  local ArrayPopCur = {}   local function LimitDouble(Val)     local MaxNumber = 2147483648     return Val - (math.floor(Val / MaxNumber) * MaxNumber) end  local function shl(Val, Shift)     if Shift > 0 then         return  LimitDouble(Val * (2 ^ Shift))     else         return Value     end  end  local function shr(Val, Shift)     if Shift > 0 then      return math.floor(Val / (2 ^ Shift))     else     return Val     end end  local function MakeHash(PlaceName)     local dataLength = mw.ustring.len(PlaceName)     if dataLength == 0 then return 0 end local hash = dataLength local remainingBytes =  math.fmod(dataLength, 2)     local numberOfLoops = math.floor(dataLength / 2)     local currentIndex = 0     local tmp = 0     while (numberOfLoops > 0) do  hash = LimitDouble(hash + mw.ustring.codepoint(PlaceName, currentIndex + 1)) tmp = bit32.bxor(shl(mw.ustring.codepoint(PlaceName, currentIndex + 2), 11), hash) hash = bit32.bxor(shl(hash, 16), tmp) hash = LimitDouble(hash + shr(hash, 11)) currentIndex = currentIndex + 2 numberOfLoops = numberOfLoops - 1     end if remainingBytes == 1 then hash = LimitDouble(hash + mw.ustring.codepoint(PlaceName, currentIndex + 1)) hash = bit32.bxor(hash, shl(hash, 10)) hash = LimitDouble(hash + shr(hash, 1))     end hash = bit32.bxor(hash, shl(hash, 3)) hash = LimitDouble(hash + shr(hash, 5)) hash = bit32.bxor(hash, shl(hash, 4)) hash = LimitDouble(hash + shr(hash, 17)) hash = bit32.bxor(hash, shl(hash, 25)) hash = LimitDouble(hash + shr(hash, 6)) return hash end local function Getreg(regname)     local PlaceName = regname      if PlaceName == nil then return "Введите название объекта АТД" end     PlaceName = mw.text.trim(PlaceName)   local PlaceHash = MakeHash(PlaceName) local function FormatH()         return PlaceHash end      local PlaceData = nil  PlaceData = ArrayPopSRC[PlaceHash]      local LastRecord = 0     for k in pairs(PlaceData) do LastRecord = LastRecord + 1 end     local NumRecord = LastRecord  local function FormatN()         return PlaceData[NumRecord][2] end       return FormatN() end  local ArrayReg = { 'Алтай кырай', 'Амур область', 'Архангельск область', 'Астрахань область', 'Белгород область', 'Брянск область', 'Владимир область', 'Волгоград область', 'Вологда область', 'Воронеж область', 'Москва', 'Санкт-Петербург', 'Еврей автоном область', 'Забайкальский кырай', 'Иваново область', 'Иркутск область', 'Кабардин-Балкария', 'Калининград область', 'Калуга область', 'Камчатка край', 'Карачай-Черкесия', 'Карелия Республика', 'Кемерово область', 'Киров область', 'Кострома область', 'Краснодар край', 'Красноярск край', 'Курган область', 'Курск область', 'Ленинград область', 'Липецк область', 'Магадан область', 'Москва область', 'Мурманск область', 'Ненец автоном округ', 'Нижний Новгород область', 'Новгород область', 'Новосибирск область', 'Омск область', 'Оренбург область', 'Орёл область', 'Пенза область', 'Пермь кырай', 'Приморский кырай', 'Псков область', 'Адыгея', 'Алтай Республика', 'Башкортостан', 'Бурятия', 'Дагестан', 'Ингушетия', 'Калмыкия', 'Коми Республика', 'Крым Республика', 'Марий Эл', 'Мордовия', 'Якутия', 'Тӱндӱк Осетия', 'Татарстан', 'Тыва', 'Хакасия', 'Ростов область', 'Рязань область', 'Самара область', 'Саратов область', 'Сахалин область', 'Свердловск область', 'Севастополь', 'Смоленск область', 'Ставрополь край', 'Тамбов область', 'Тверь область', 'Томск область', 'Тула область', 'Тюмень область', 'Удмуртия', 'Ульяновск область', 'Хабаровск край', 'Ханты-Манси автоном округ — Югра', 'Челябинск область', 'Чечня', 'Чувашия', 'Чукотка автономный округ', 'Ямало-Ненец автоном округ', 'Ярославль область'}  local NOAOCheck = {'Архангельск область јок Ненец автоном округ', 'Тюмень область јок автоном округлер'}  local ForceAOCheck = {'Архангельск область', 'Тюмень область'}  local ArrayDatas = {}  local ArrayIndexes = {}  local ArrayTemps = {}  local PopPlace = {} PopPlace.__index = PopPlace  function PopPlace:gkeyfromVal( t, value )   for k,v in pairs(t) do     if v==value then return k end   end   return '' end  function table.contains(table, element)   for _, value in pairs(table) do     if value == element then       return true     end   end   return false end  function PopPlace:NAOCheck(Regarg, NAOARG) if table.contains(NOAOCheck, Regarg) then return true end if NAOARG=='NOAO' then if table.contains(ForceAOCheck, Regarg) then return false else return true end end return false end  function PopPlace:render() if self.args['ФО'] then  ArrayReg = require('Module:МестоПоНаселениюРегионы/'..self.args['ФО']) end for p,v in ipairs(ArrayReg) do ArrayPopCur[v..""]=Getreg(v) end local AOBase, NAOPop, TOBase, KHMAOPop, YNAOPop AOBase = ArrayPopCur['Архангельск область'] NAOPop = ArrayPopCur['Ненец автоном округ'] TOBase = ArrayPopCur['Тюмень область'] KHMAOPop = ArrayPopCur['Ханты-Манси автоном округ — Югра'] YNAOPop = ArrayPopCur['Ямало-Ненец автоном округ'] if self:NAOCheck(self.args['1'], self.args['2']) then local GETArOblForReplace = self:gkeyfromVal(ArrayReg, 'Архангельск область') local GETTOblForReplace = self:gkeyfromVal(ArrayReg, 'Тюмень область') ArrayReg[GETArOblForReplace] = tostring(ArrayReg[GETArOblForReplace]..' јок Ненец автоном округ') ArrayReg[GETTOblForReplace] = tostring(ArrayReg[GETTOblForReplace]..' јок автоном округлер') end for p,v in ipairs(ArrayReg) do if v=='Архангельск область јок Ненец автоном округ' then ArrayDatas[#ArrayDatas+1] = AOBase-NAOPop ArrayTemps[v..""]=AOBase-NAOPop elseif v=='Тюмень область јок автоном округлер' then ArrayDatas[#ArrayDatas+1]=TOBase-KHMAOPop-YNAOPop ArrayTemps[v..""]=TOBase-KHMAOPop-YNAOPop else ArrayDatas[#ArrayDatas+1] = ArrayPopCur[v] ArrayTemps[v..""]=ArrayPopCur[v] end end table.sort(ArrayDatas, function(a,b) return a>b end) for _,o in ipairs(ArrayReg) do  ArrayIndexes[o..""] = self:gkeyfromVal(ArrayDatas, ArrayTemps[o..""]) end --end ArrayPopSRC, ArrayDatas, ArrayTemps, NOAOCheck, ForceAOCheck, AOBase, NAOPop, TOBase, KHMAOPop, YNAOPop = nil if table.contains(ArrayReg, self.args['1']) then ArrayReg = nil return ArrayIndexes[self.args['1']] or '' end end  function PopPlace.new(frame, args) if not args then args = require('Module:Arguments').getArgs(frame, {wrappers = {'Template:МестоПоНаселениюРегионы'}}) --return end local obj = { frame = frame, args = args }      return setmetatable(obj, PopPlace) end  local p = {}  function p.main(frame) return PopPlace.new(frame):render()  end  return p 

Tags:

🔥 Trending searches on Wiki Алтай:

Алтыгы КуйумАлтай тилТулаан айЫжыОрус тилКарский талайКуран айдыҥ 10 кӱниКичӱ изӱ айдыҥ 5 кӱниӰлӱрген айдыҥ 31 кӱниАбайдыҥ чӧлиБалыкчыЈопонСыгын айдыҥ 11 кӱниӰлӱрген айдыҥ 22 кӱниБайголЈодроКандык айдыҥ 29 кӱниКандык айдыҥ 12 кӱниТулаан айдыҥ 7 кӱниШодоев, Иван ВасильевичТургенев, Иван СергеевичЈыландуКӱӱк айдыҥ 11 кӱниБичиктӱ-БоомЈӱс ТытБелеТӧгӧрикКӱӱк айдыҥ 6 кӱниКичӱ изӱ айдыҥ 26 кӱниКочкор айдыҥ 18 кӱниСамараЧаган айдыҥ 4 кӱниКичӱ изӱ айдыҥ 10 кӱниТулаан айдыҥ 4 кӱниАртыбашАлтай РеспубликаКӱчӱрген айдыҥ 11 кӱниКӱӱк айдыҥ 12 кӱниЛингва франка новаАкташӰлӱрген айдыҥ 7 кӱниЧаган айдыҥ 3 кӱниФинляндияАртыбаштыҥ јурт јеезезиСыгын айдыҥ 15 кӱниКочкор айдыҥ 20 кӱниПлакастыҥ гимназиязыКорумду (суу)Кичӱ изӱ айКуран айдыҥ 20 кӱниКӱӱк ай🡆 More