Форум программистов, компьютерный форум, киберфорум
Наши страницы

Сохранение таблицы в файл - Lua

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Lua string.lower http://www.cyberforum.ru/lua/thread1009280.html
del
Lua Столкновение объектов и уничтожение без physics Изучать Lua начал буквально вчера. Любопытно, как еще возможно определить столкновение двух объектов ( например кругов ) так, что бы они, при столкновении, уничтожились? Допустим будет на экране N... http://www.cyberforum.ru/lua/thread1003519.html
lua script Lua
Такое дело: Есть изображения, и есть скрипт на Lua, который эти изображения "исполняет". Как собственно из этого сделать приложение exe?
Lua Сборка библиотеки
Возникла необходимость написать на C++ собственную библиотеку для Lua. Для начала компилирую тестовую библиотеку, взятую из примеров. Исходник: #include <time.h> #include <stdlib.h> extern...
Lua Переделать мод http://www.cyberforum.ru/lua/thread974747.html
мне хочеться найти программиста в lua,который поможет мне переделать мод на supreme commander forged alliance,кто хочет помочь,стучитесь в скайп sasbucha.
Lua Какое значение при обработке символа имеют буквы s, d, f ? Какое значение при обработке символа имеют буквы s, d, f ? подробнее

Показать сообщение отдельно
Pahuchiy
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 26
29.01.2018, 20:44
Код
function table.save(tbl,file)
        -- recursively saves table data to a file, human-readable and indented
        -- supported types: number, string, boolean, tables of the same
        local f,err = io.open(file,"w")
        if err then
                print("Error: Unable to open file for writing: "..file.."\nDetails: "..err)
                return
        end
        local indent = 1
 
        -- local functions to make things easier
        local function exportstring(s)
                s=string.format("%q",s)
                s=s:gsub("\\\n","\\n")
                s=s:gsub("\r","")
                s=s:gsub(string.char(26),""..string.char(26).."")
                return s
        end
        local function serialize(o)
                if type(o) == "number" then
                        f:write(o)
                elseif type(o) == "boolean" then
                        if o then f:write("true") else f:write("false") end
                elseif type(o) == "string" then
                        f:write(exportstring(o))
                elseif type(o) == "table" then
                        f:write("{\n")
                        indent = indent + 1
                        local tab = ""
                        for i=1,indent do tab = tab .. "        " end
                        for k,v in pairs(o) do
                                f:write(tab .. "[")
                                serialize(k)
                                f:write("] = ")
                                serialize(v)
                                f:write(",\n")
                        end
                        indent = indent - 1
                        tab = ""
                        for i=1,indent do tab = tab .. "        " end
                        f:write(tab .. "}")
                else
                        print("unable to serialzie data: " .. tostring(o))
                        f:write("nil, -- ***ERROR: unsupported data type!***")
                end
        end
 
        -- here's the actual save process
        f:write("return {\n")
        for k,v in pairs(tbl) do
                f:write("       [")
                serialize(k)
                f:write("] = ")
                serialize(v)
                f:write(",\n")
        end
        f:write("}")
        f:close()
end
function table.load(file)
        local data,err = loadfile(file)
        if err then return nil,err else return data() end
end
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru