Guest User

splitTable

a guest
Jun 6th, 2015
429
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.53 KB | None | 0 0
  1. function string.splitLast(str,char)
  2.     local function findLast(str,char)
  3.         for i=#str,1,-1 do
  4.             if str:sub(i,i)==char then
  5.                 return i
  6.             end
  7.         end
  8.     end
  9.     local findChar=findLast(str,char)
  10.     if findChar then
  11.         return {str:sub(1,findChar-1),str:sub(findChar+1)}
  12.     end
  13.     return {str}
  14. end
  15.  
  16. function string.split(str,char)
  17.   tbl={}
  18.   if char=="%" then --Curse you Lua patterns!
  19.     char="%%"
  20.   elseif char=="(" then
  21.     char="%("
  22.   end
  23.   local findChar,findCharEnd=str:find(char)
  24.   if findChar then
  25.     table.insert(tbl,str:sub(1,findChar-1))
  26.     repeat
  27.       findChar2,findChar2End=str:find(char, findChar+1)
  28.       if findChar2~=nil then
  29.         table.insert(tbl,str:sub(findChar+1,findChar2-1))
  30.         findChar=findChar2
  31.       end
  32.     until findChar2==nil
  33.     table.insert(tbl,str:sub(findChar+1))
  34.   else
  35.     return {str}
  36.   end
  37.   return tbl
  38. end
  39.  
  40. args={...}
  41. local whiteSpace=args[1]=="true" --Set this to true if you want the whitespace textutils.serialize normally has.
  42. local BlockNames={}
  43. local f=fs.open("blockNames","r")
  44. local rawTable=f.readAll():split("\n")
  45. f.close()
  46. for i=1,#rawTable do
  47.     local line=rawTable[i]
  48.     local tmp=line:split("#")[1]:split(":")
  49.     local id=tonumber((tmp[1]:gsub(" ","")))
  50.     local meta=tonumber(((tmp[2] or "0"):gsub(" ","")))
  51.     local unlocalizedName=(line:splitLast("(")[2]):gsub("%)","")
  52.     BlockNames[id]=unlocalizedName
  53. end
  54. f=fs.open("finalTable","w")
  55. f.write((whiteSpace and textutils.serialize(BlockNames)) or textutils.serialize(BlockNames):gsub(" ",""):gsub("\n",""))
  56. f.close()
Advertisement
Add Comment
Please, Sign In to add comment