Advertisement
Guest User

custom data

a guest
Dec 30th, 2013
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.01 KB | None | 0 0
  1. function parse_custom_data(str)
  2.  local t={}
  3.  if str then
  4.   for section, section_data in string.gfind(str,"%s*%[([^%]]*)%]%s*([^%[%z]*)%s*") do
  5.    section = trim(section)
  6.    t[section]={}
  7.    for line in string.gfind(trim(section_data), "([^\n]*)\n*") do
  8.     if string.find(line,"=")~=nil then
  9.      for k, v in string.gfind(line, "([^=]-)%s*=%s*(.*)") do
  10.       k = trim(k)
  11.       if k~=nil and k~='' and v~=nil then
  12.        t[section][k]=trim(v)
  13.       end
  14.      end
  15.     else
  16.      for k, v in string.gfind(line, "(.*)") do
  17.       k = trim(k)
  18.       if k~=nil and k~='' then
  19.        t[section][k]="<<no_value>>"
  20.       end
  21.      end
  22.     end
  23.    end
  24.   end
  25.  end
  26.  return t
  27. end
  28.  
  29. function gen_custom_data(tbl)
  30.  local str=''
  31.  for key, value in pairs(tbl) do
  32.   str = str.."["..key.."]\n"
  33.   for k, v in pairs(value) do
  34.    if v~="<<no_value>>" then
  35.     str=str..k.." = "..v.."\n"
  36.    else
  37.     str=str..k.."\n"
  38.    end
  39.   end
  40.  end
  41.  return str
  42. end
  43.  
  44. function trim (s)
  45.  return (string.gsub(s, "^%s*(.-)%s*$", "%1"))
  46. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement