Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local m = peripheral.wrap("left")
- m.clear()
- term.clear()
- local list = {}
- local numEntries = 0
- local endLoop2 = false
- -- read list from file
- local endLoop = false
- local file = fs.open("list.txt", "r")
- local j = 0
- local lines = {}
- if file ~= nil then
- local line = file.readLine()
- while line ~= "end" do
- list[j] = line
- j = j + 1
- line = file.readLine()
- print("Reading " .. line)
- numEntries = numEntries + 1
- end
- end
- file.close()
- -- update the monitor
- m.setCursorPos(26,2)
- m.setTextColor(colors.lime)
- m.write("NOTICEBOARD")
- m.setCursorPos(26, 3)
- m.write("-----------")
- local k = 0
- while k < numEntries do
- m.setCursorPos(2,4+k)
- m.setTextColor(colors.white)
- m.write(tostring(k+1) .. " - " .. list[k])
- k = k + 1
- end
- -- main loop
- local input
- while not endLoop2 do
- term.setCursorPos(1,1)
- term.write("1 : Add an entry")
- term.setCursorPos(1,2)
- term.write("2 : Delete an entry")
- term.setCursorPos(1,3)
- term.write("3 : Clear the list")
- term.setCursorPos(1,4)
- term.write("4 : Print the list")
- term.setCursorPos(1, 5)
- term.write("5 : Exit")
- term.setCursorPos(1, 7)
- term.write("Enter a command: ")
- input = read()
- m.clear()
- term.clear()
- term.setCursorPos(1,8)
- if input == "1" then
- -- add an entry
- term.write("Enter the new item: ")
- input = read()
- term.setCursorPos(1, 9)
- term.write("Adding: " .. input)
- list[numEntries] = input
- numEntries = numEntries + 1
- term.setCursorPos(1, 10)
- term.write("There are now " .. tostring(numEntries) .. " entries.")
- -- update file --
- local file = fs.open("list.txt", "w")
- local i = 0
- while i < numEntries do
- file.writeLine(list[i])
- i = i + 1
- end
- file.writeLine("end")
- file.close()
- -- update file --
- elseif input == "2" then
- -- delete an entry
- term.write("Enter the number of the item to remove: ")
- input = tonumber(read())
- i = input - 1
- numEntries = numEntries - 1
- print("\nRemoving " .. list[i])
- while i < numEntries do
- list[i] = list[i+1]
- i = i + 1
- end
- list[i] = nil
- -- update file --
- local file = fs.open("list.txt", "w")
- local i = 0
- while i < numEntries do
- file.writeLine(list[i])
- i = i + 1
- end
- file.writeLine("end")
- file.close()
- -- update file --
- elseif input == "3" then
- -- clear the list
- term.write("Clearing list.")
- while 0 < numEntries do
- list[0] = nil
- numEntries = numEntries - 1
- end
- local file = fs.open("list.txt", "w")
- file.writeLine("end")
- file.close()
- elseif input == "4" then
- -- print the list
- term.clear()
- term.setCursorPos(1,1)
- local i = 0
- while i < numEntries do
- print(list[i])
- i = i + 1
- end
- elseif input == "5" then
- -- exit
- endLoop2 = true
- term.write("Exiting program.")
- else
- -- invalid input
- term.write("Invalid entry.")
- end
- -- update the monitor
- m.setCursorPos(26,2)
- m.setTextColor(colors.lime)
- m.write("NOTICEBOARD")
- m.setCursorPos(26, 3)
- m.write("-----------")
- local i = 0
- while i < numEntries do
- m.setCursorPos(2,4+i)
- m.setTextColor(colors.white)
- m.write(tostring(i+1) .. " - " .. list[i])
- i = i + 1
- end
- os.sleep(3)
- end
Advertisement
Add Comment
Please, Sign In to add comment