Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --dumps contents of table to string, including nested tables, excluding circular references
- local P = {}
- setmetatable(P, {__index = _G})
- setfenv(1,P)
- tableIDsDone = {}
- function tableToFile(tblToConvert, name)
- local result = tableToString(tblToConvert)
- tableIDsDone = {}
- stringToFile(name, result)
- end
- function tableToString(tbl)
- table.insert(tableIDsDone, tostring(tbl))
- local resultingString = ''
- for k,v in pairs(tbl) do
- if inTable(tostring(v),tableIDsDone) then
- resultingString = resultingString..k..'\t'..'table(Repeated Reference)'..'\n'
- break end
- if type(v)=='table' then
- resultingString = resultingString..k..'\t'..'table'..'\n'
- local newTableString = tabAfterNewLine('\t'..tableToString(v))
- resultingString = resultingString..newTableString
- else
- if type(v)=='number' or type(v)=='boolean' or type(v)=='string' then
- resultingString = resultingString..k..'\t'..type(v)..' '..tostring(v)..'\n'
- else
- resultingString = resultingString..k..'\t'..type(v)..'\n'
- end
- end
- end
- return resultingString
- end
- function inTable(membershipTest, tableToSearch)
- for _,v in pairs(tableToSearch) do
- if v == membershipTest then return true end
- end
- return false
- end
- function tabAfterNewLine(string)
- return string.gsub(string, '\n', '\n\t')
- end
- function stringToFile(path, text)
- local file = assert(io.open(path, 'w'))
- file:write(text)
- file:close()
- end
- beehouse = peripheral.wrap('right')
- tableToFile(beehouse.getAllStacks(), 'blah')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement