LINUX.ORG.RU

История изменений

Исправление LightDiver, (текущая версия) :

У меня не луа, а wow lua, здесь что то странное.

ns_data_base = {
  {
    "1", -- [1]
    "1", -- [2]
    "1", -- [3]
  }, -- [1]
  {
    [4] = "1",
    [5] = "1",
    [6] = "1",
  }, -- [2]
  {
    [7] = "1",
    [9] = "1",
    [8] = "1",
  }, -- [3]
}

Видишь три таблица по три записи? Это одинаковые таблицы и одинаковые записи. Ну, просто ему так хочется.

Если хочу записать 500000 записей в таблицы по 100000 в таблицу, он запишет. Но при перезаходе в игру выдаст ошибку: «constant table overflow» и обнулит файл.

Если я захочу записать в одну таблицу, туда можно максимум 524288. Дальше ошибка биг дата. Вообе при разных размерах и количестве таблиц разные ошибки. Мне нужна предсказуемая расшияемая структура. Я не понимать пока логики работы.

Код я уже исправил:

function test1(num, num2, num3)
    ns_data_base =  {}

    if not num2 then
        for i = 1, num do
            local index = tonumber(math.ceil(i / num3))  -- Вычисляем индекс на основе i
            ns_data_base[index] = ns_data_base[index] or {}  -- Инициализируем подтаблицу, если она не существует
            local shablon="абвгдеёжзийк"
            local temp_b = ""
            for q = 1, 3 do
                temp_b = temp_b .. string.utf8sub(shablon,math.random(1,10),math.random(1,10))
            end
            ns_data_base[index][i] = temp_b  -- Заполняем подтаблицу значением "1"
        end
    else
        local index = math.ceil(num / num3)  -- Вычисляем индекс на основе num
        ns_data_base[index] = ns_data_base[index] or {}  -- Инициализируем подтаблицу, если она не существует
        table.insert(ns_data_base[index], "1")  -- Вставляем "1" в подтаблицу
        print('fdsfsda')
    end
    if ns_data_base[1] then
        print(tablelength(ns_data_base))
        for i = 1, tablelength(ns_data_base) do
            print(tablelength(ns_data_base[i]))
        end
    end
end

Исходная версия LightDiver, :

У меня не луа, а wow lua, здесь что то странное.

ns_data_base = {
  {
    "1", -- [1]
    "1", -- [2]
    "1", -- [3]
  }, -- [1]
  {
    [4] = "1",
    [5] = "1",
    [6] = "1",
  }, -- [2]
  {
    [7] = "1",
    [9] = "1",
    [8] = "1",
  }, -- [3]
}

Видишь три таблица по три записи? Это одинаковые таблицы и одинаковые записи. Ну, просто ему так хочется.

Если хочу записать 500000 записей в таблицы по 100000 в таблицу, он запишет. Но при перезаходе в игру выдаст ошибку: «constant table overflow» и обнулит файл.

Если я захочу записать в одну таблицу, туда можно максимум 524288. Дальше ошибка биг дата. Вообе при разных размерах и количестве таблиц разные ошибки. Мне нужна предсказуемая расшияемая структура. Я не понимать пока логики работы.