|
Здравствуйте, гость ( Вход | Регистрация )
|
9.1.2010, 21:27
Сообщение
#21
|
|
|
Lua-master ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 064 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1389 раз |
Модули кладутся в папку libs.
Давайте сделаем некое правила написания модулей: файлы модулей будем писать строчными буквами, а модули объявлять тем же словом, но начинающемся с заглавной буквы. Так будет проще отличать название файла с модулем, от названия самого модуля (для того чтобы вникнуть в их суть). Пример использования функций модуля: Код require"files" -- подключение модуля Files.SaveTable("myfile.txt", tTable, "tTable") -- Вызов функции модуля Модуль для работы с файлами:
files.lua ( 1.34 килобайт )
Кол-во скачиваний: 357Модуль различных утилит:
utils.lua ( 1.77 килобайт )
Кол-во скачиваний: 133Давайте в этой теме обсуждать те функции, которые часто используются скриптами, и запихивать их в модули |
|
|
|
![]() |
12.3.2010, 13:13
Сообщение
#22
|
|
|
Lua-master ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 064 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1389 раз |
Тут дело такое... Если определить таблицу вне функции, то это безусловно будет быстрее, так как при вызове функции каждый раз не будет создаваться таблица, с другой стороны, эта таблица будет постоянно занимать некоторое место в памяти, в отличие от таблицы внутри функции, которая будет удаляться из памяти сразу же после отработки функции.
Можно и так и так, однако, не думаю, что данная функция так уж часто используется, чтобы задумываться о быстродействии, тем более если данный модуль будет использоваться в нескольких скриптах, то занимаемая этой таблицей память будет прямо пропорциональна числу скриптов, использующих этот модуль, даже если скрипт и не использует функцию DoShareUnits !!! Насчёт расширения этой таблицы, то 1024 ПБ - это очень много. И я думаю, что в ближайшие лет 20 мы ещё не доберёмся до таких размеров |
|
|
|
27.12.2010, 23:25
Сообщение
#23
|
|
![]() Продвинутый участник ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 104 Регистрация: 1.4.2009 Из: Россия Пользователь №: 2 871 Спасибо сказали: 40 раз |
Илья, при вызове из модуля utils.lua функции - DoShareUnits получил такое сообщение об ошибке: utils.lua:44: attempt to call global 'tonumber' (a nil value)
Ошибка перестала появляться когда переместил саму функцию DoShareUnits в скрипт из которого запрашивал - Utils.DoShareUnits(tUser.iShare) Соответственно, что после переноса функции, запрос стал - DoShareUnits(tUser.iShare). В таком варианте работает. Раскрывающийся текст Код function DoShareUnits(iSize) local tUnits = {"Б", "КБ", "МБ", "ГБ", "ТБ", "ПБ"} iSize = tonumber(iSize) for i = 1, 6 do if iSize < 1024 or i == 6 then iSize = ("%0.2f"):format(iSize):gsub("%.", ",") local a, b = iSize:match"(%d)(%d)$" if b == '0' then if a == '0' then iSize = iSize:sub(1, -4) else iSize = iSize:sub(1, -2) end end return iSize..' '..tUnits[i] else iSize = iSize / 1024 end end end P.S. После обновления - utils.lua - увидел в чем была разница. Спасибо Илья. |
|
|
|
27.12.2010, 23:49
Сообщение
#24
|
|
|
Lua-master ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 064 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1389 раз |
Спасибо. Исправил и перезалил
|
|
|
|
5.5.2011, 14:43
Сообщение
#25
|
|
![]() Активист! ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 614 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 401 раз |
IP2Country - Модуль работы с IP2Country.csv
Автор: Nickolya Подключение модуля: require"IP2Country" Функции: IP2Country.GetCountryCode(sIP) - Возвращает код страны для указанного ip IP2Country.GetCountryName(sIP) - Возвращает имя страны для указанного ip База IP2Country.csv должна быть в корневой дериктории хаба. Сообщение отредактировал Saymon21 - 13.5.2011, 12:00
Прикрепленные файлы
|
|
|
|
![]() ![]() |
Похожие темы
|
Сейчас: 23.5.2012, 10:40 |