qwopqwoqpwqwop

new_tbl

Oct 13th, 2019
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. function Module:ValueToString( v )
  2. if "string" == type( v ) then
  3. v = string.gsub( v, "\n", "\\n" )
  4. if string.match( string.gsub(v,"[^'\"]",""), '^"+$' ) then
  5. return "'" .. v .. "'"
  6. end
  7. return '"' .. string.gsub(v,'"', '\\"' ) .. '"'
  8. else
  9. return "table" == type( v ) and self:TableToString( v ) or tostring( v )
  10. end
  11. end
  12.  
  13. function Module:KeyToString( k )
  14. if "string" == type( k ) and string.match( k, "^[_%a][_%a%d]*$" ) then
  15. return k
  16. else
  17. return "[" .. self:ValueToString( k ) .. "]"
  18. end
  19. end
  20.  
  21. function Module:TableToString( tbl )
  22. if not tbl then return "nil" end
  23. local result, done = {}, {}
  24. for k, v in ipairs( tbl ) do
  25. table.insert( result, self:ValueToString( v ) )
  26. done[ k ] = true
  27. end
  28. for k, v in pairs( tbl ) do
  29. if not done[ k ] then
  30. table.insert( result,
  31. self:KeyToString( k ) .. "=" .. self:ValueToString( v ) )
  32. end
  33. end
  34. return "{" .. table.concat( result, "," ) .. "}"
  35. end
Advertisement
Add Comment
Please, Sign In to add comment