SD_Ecliptica

Kensington To-Do

Dec 19th, 2014
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.62 KB | None | 0 0
  1. local m = peripheral.wrap("left")
  2. m.clear()
  3. term.clear()
  4. local list = {}
  5. local numEntries = 0
  6. local endLoop2 = false
  7.  
  8. -- read list from file
  9. local endLoop = false
  10. local file = fs.open("list.txt", "r")
  11. local j = 0
  12. local lines = {}
  13. if file ~= nil then
  14.     local line = file.readLine()
  15.     while line ~= "end" do
  16.     list[j] = line
  17.     j = j + 1
  18.     line = file.readLine()
  19.     print("Reading " .. line)
  20.     numEntries = numEntries + 1
  21.     end
  22. end
  23. file.close()
  24.  
  25. -- update the monitor
  26.     m.setCursorPos(26,2)
  27.     m.setTextColor(colors.lime)
  28.     m.write("NOTICEBOARD")
  29.     m.setCursorPos(26, 3)
  30.     m.write("-----------")
  31.  
  32. local k = 0
  33. while k < numEntries do
  34.     m.setCursorPos(2,4+k)
  35.     m.setTextColor(colors.white)
  36.     m.write(tostring(k+1) .. " - " .. list[k])
  37.     k = k + 1
  38. end
  39.  
  40. -- main loop
  41. local input
  42. while not endLoop2 do    
  43.     term.setCursorPos(1,1)
  44.     term.write("1 : Add an entry")
  45.     term.setCursorPos(1,2)
  46.     term.write("2 : Delete an entry")
  47.     term.setCursorPos(1,3)
  48.     term.write("3 : Clear the list")
  49.     term.setCursorPos(1,4)
  50.     term.write("4 : Print the list")
  51.     term.setCursorPos(1, 5)
  52.     term.write("5 : Exit")
  53.    
  54.     term.setCursorPos(1, 7)
  55.         term.write("Enter a command: ")
  56.     input = read()
  57.     m.clear()
  58.     term.clear()
  59.     term.setCursorPos(1,8)
  60.    
  61.     if input == "1" then
  62.         -- add an entry
  63.         term.write("Enter the new item: ")
  64.         input = read()
  65.         term.setCursorPos(1, 9)
  66.         term.write("Adding: " .. input)
  67.         list[numEntries] = input
  68.         numEntries = numEntries + 1
  69.         term.setCursorPos(1, 10)
  70.         term.write("There are now " .. tostring(numEntries) .. " entries.")
  71.        
  72.         -- update file --
  73.         local file = fs.open("list.txt", "w")
  74.         local i = 0
  75.         while i < numEntries do
  76.             file.writeLine(list[i])
  77.         i = i + 1
  78.         end
  79.         file.writeLine("end")
  80.         file.close()
  81.         -- update file --
  82.        
  83.     elseif input == "2" then  
  84.         -- delete an entry
  85.         term.write("Enter the number of the item to remove: ")
  86.         input = tonumber(read())
  87.         i = input - 1
  88.         numEntries = numEntries - 1
  89.         print("\nRemoving " .. list[i])
  90.         while i < numEntries do
  91.             list[i] = list[i+1]
  92.             i = i + 1
  93.         end
  94.         list[i] = nil
  95.  
  96.     -- update file --
  97.         local file = fs.open("list.txt", "w")
  98.         local i = 0
  99.         while i < numEntries do
  100.             file.writeLine(list[i])
  101.         i = i + 1
  102.         end
  103.         file.writeLine("end")
  104.         file.close()
  105.         -- update file --
  106.    
  107.     elseif input == "3" then
  108.         -- clear the list
  109.         term.write("Clearing list.")
  110.     while 0 < numEntries do
  111.         list[0] = nil
  112.         numEntries = numEntries - 1
  113.     end
  114.     local file = fs.open("list.txt", "w")
  115.     file.writeLine("end")
  116.     file.close()
  117.  
  118.     elseif input == "4" then
  119.         -- print the list
  120.         term.clear()
  121.         term.setCursorPos(1,1)
  122.         local i = 0
  123.         while i < numEntries do  
  124.             print(list[i])
  125.             i = i + 1
  126.         end
  127.  
  128.     elseif input == "5" then
  129.         -- exit
  130.         endLoop2 = true
  131.     term.write("Exiting program.")
  132.     else
  133.         -- invalid input
  134.         term.write("Invalid entry.")
  135.     end
  136.    
  137.     -- update the monitor
  138.     m.setCursorPos(26,2)
  139.     m.setTextColor(colors.lime)
  140.     m.write("NOTICEBOARD")
  141.     m.setCursorPos(26, 3)
  142.     m.write("-----------")
  143.  
  144.     local i = 0
  145.     while i < numEntries do
  146.         m.setCursorPos(2,4+i)
  147.         m.setTextColor(colors.white)
  148.         m.write(tostring(i+1) .. " - " .. list[i])
  149.         i = i + 1
  150.     end
  151.    
  152.     os.sleep(3)
  153. end
Advertisement
Add Comment
Please, Sign In to add comment