_dinsdale icon

launet example - unknown source

_dinsdale | PRO | 04/19/18 05:03:13 AM UTC | 0 ⭐ | 497 👁️ | Never ⏰ | []
Lua |

1.7 KB

|

None

|

0 👍

/

0 👎

require 'luanet'
--luanet.load_assembly("System")
Console = luanet.import_type("System.Console")
ConsoleColor = luanet.import_type("System.ConsoleColor")
 
local FILENAME = "fook.txt"
 
function string:split(delimiter, limit)
  local result = { }
  local from  = 1
  local delim_from, delim_to = string.find( self, delimiter, from  )
  while delim_from do
    table.insert( result, string.sub( self, from , delim_from-1 ) )
    from  = delim_to + 1
    delim_from, delim_to = string.find( self, delimiter, from  )
  end
  table.insert( result, string.sub( self, from  ) )
  
  for i=limit+1,#result do
    result[limit] = result[limit]..delimiter..result[i]
  end
  
  return result
end
 
local appendtext = ""
Console.ForegroundColor = ConsoleColor.Green --Change colour to pure green
while(true) do --infinite loop until "break"
    f = io.open(FILENAME, "r")
    os.execute("Cls") --clear screen and print lines
    for ln in f:lines() do
        io.write("\n"..ln)
    end
    io.write(appendtext) --print() without the new line
    f:close() --close the file so we can start a writing stream instead of read only
    print("\n----------------------------")
    
    userinput = io.read()
    local args = userinput:split(" ", 2)
    local cmd, val = args[1], args[2]
    f = io.open(FILENAME, "a")
    if cmd == "save" then
        f:write(appendtext) --write the appended text to the file, flush, and clear append
        f:flush()
        appendtext = ""
    elseif cmd == "write" then
        appendtext = appendtext..val --add onto appended text
    elseif cmd == "return" then
        appendtext = appendtext.."\n" --start on a new line
    elseif cmd == "exit" then
        break --exit the while loop.
    end
    f:close() --close writing so that we can read it for next loop
end

Comments