Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Определяем класс NsDb
- NsDb = {} -- Создаем пустую таблицу для класса
- NsDb.__index = NsDb -- Устанавливаем метатаблицу для объектов класса
- -- Конструктор для создания нового объекта NsDb
- function NsDb:new(input_table, input_table_p, key, tbl_size, is_unique, crypt)
- local new_object = setmetatable({}, self) -- Создаем новый объект и устанавливаем метатаблицу
- -- Сохраняем данные в объекте
- input_table_p[key] = input_table_p[key] or {}
- input_table[key] = input_table[key] or {}
- new_object.input_table_p = input_table_p[key] -- Сохраняем входную таблицу в объекте
- new_object.input_table = input_table[key] -- Сохраняем входную таблицу в объекте
- new_object.is_unique = is_unique -- Сохраняем уникальность в объекте
- new_object.str_len = tbl_size
- new_object.crypt = crypt
- return new_object -- Возвращаем созданный объект
- end
- function NsDb:create_bin(message, str)
- local t = GetTime()
- if self.is_unique then
- -- дописать
- else
- local pointer = numCod(string.utf8len(message))
- if string.len(pointer) < 2 then
- pointer = " " .. pointer
- end
- if str == 0 then
- table.insert(self.input_table, message)
- table.insert(self.input_table_p, pointer)
- else
- self.input_table[#self.input_table] = self.input_table[#self.input_table] .. message
- self.input_table_p[#self.input_table_p] = self.input_table_p[#self.input_table_p] .. pointer
- end
- end
- end
- -- Метод для добавления сообщения в таблицу
- function NsDb:add(message)
- if self.crypt then
- -- добавить метод шифровк слов
- end
- if self.str_len > 1 then
- local num = #self.input_table
- if num < 1 then
- --print(message,'1')
- self:create_bin(message, 0)
- elseif num >= 1 and string.utf8len(self.input_table[num]) >= self.str_len then
- --print(message,'2')
- self:create_bin(message, 0)
- elseif num >= 1 and string.utf8len(self.input_table[num]) < self.str_len then
- --print(message,'3')
- self:create_bin(message, 1)
- --table.remove(self.input_table[self.key], num)
- end
- else
- if self.is_unique then
- if num < 1 then
- self.input_table[message] = 1
- else
- if not self.input_table[message] then
- self.input_table[message] = num + 1
- end
- end
- else
- end
- end
- end
- function NsDb:get(message)
- -- чтение данных
- end
- function NsDb:crypt(message)
- end
- function NsDb:mod_key(change_key, message)
- local num = #self.input_table
- if self.crypt then
- -- добавить метод шифровк слов
- end
- if self.str_len > 1 then
- else
- if self.is_unique then
- if not self.input_table[change_key] then
- self.input_table[change_key] = message
- end
- else
- end
- end
- end
- -- Метод для добавления сообщения по указанной позиции
- function NsDb:add_pos(message, position)
- -- Вспомогательная функция для сдвига индексов сообщений
- -- дописать изменение индекса сообщения и сдвиг остальных
- end
- -- Метод для удаления сообщения, используя позицию
- function NsDb:del_pos(message)
- -- дописать удаление отдельных сообщений с переиндексацией всего
- end
- -- Определяем класс create_table
- create_table = {} -- Создаем пустую таблицу для класса
- create_table.__index = create_table -- Устанавливаем метатаблицу для объектов класса
- -- Конструктор для создания нового объекта create_table
- function create_table:new(input_table, key)
- local new_object = setmetatable({}, self) -- Создаем новый объект и устанавливаем метатаблицу
- _G[input_table] = _G[input_table] or {}
- _G[input_table.."_p"] = _G[input_table.."_p"] or {}
- _G[input_table.."_p"][key] = _G[input_table.."_p"][key] or {}
- _G[input_table][key] = _G[input_table][key] or {}
- -- Сохраняем данные в объекте
- new_object.input_table = _G[input_table] -- Сохраняем входную таблицу в объекте
- new_object.input_table_p = _G[input_table.."_p"]
- new_object.key = key -- Сохраняем ключ в объекте
- return new_object -- Возвращаем созданный объект
- end
- -- Метод для получения таблицы
- function create_table:get_table()
- return self.input_table[self.key] -- Возвращаем таблицу, соответствующую ключу
- end
- function create_table:get_table_p()
- return self.input_table_p[self.key] -- Возвращаем таблицу, соответствующую ключу
- end
Advertisement
Add Comment
Please, Sign In to add comment