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

Для документации этого модуля может быть создана страница Модуль:МестоПоНаселениюРегионы/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 ГӀалгӀай:

XX бӀаьшуКураДогӀаМаьхалашИсландиКиевАтагӀеФаьрсий моттМукъамЮккъера Ӏалама лоаттамБийдал1997 шуГӀалгӀайчен истори1906 шу1947 шуСуннийСоветий Социализма Республикай Союз01901 шуБолгарой моттКонгоЧухье (анатоми)ЗӀамига КавказЛоаФордгӀалой моттЯний моттГӀараКъамаьлАрдара 18ГӀалгӀай мохк1978 шуГамбургХьалхара АзиАстрали4Русский язык1938 шу1921 шуДикача уйлаца пайда эцарМаккаГаргара Малхбоале5Тадж-МахьалНемций моттХӀабишБийсаДешарГӀалгӀайчен пхьеш1909 шуАлмазхий1913 шу1933 шуЭрсече2018 шуСанкт-ПетербургТуркий моттФерменташМухКавказа метташХӀамаш хувцаяларИндия1912 шуМухьаммад ПайхамарГӀаьртал1931 шуБрюссельский столичный регионФилософи🡆 More