Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Nom du fichier à afficher
- local fileName = "list.txt"
- -- Côté où est connecté le moniteur (ajuste-le selon ta configuration)
- local monitorSide = "right"
- -- Vérifie si le moniteur est connecté correctement
- if not peripheral.isPresent(monitorSide) then
- print("Erreur: Aucun moniteur détecté sur le côté " .. monitorSide)
- return
- end
- -- Attache le périphérique moniteur
- local mon = peripheral.wrap(monitorSide)
- mon.setTextScale(0.5) -- Ajuste la taille du texte (0.5 pour plus d'espace)
- mon.clear() -- Efface le moniteur
- -- Fonction pour lire le contenu d'un fichier
- local function readFile(fileName)
- local file = fs.open(fileName, "r")
- if not file then
- print("Erreur: Impossible de lire le fichier " .. fileName)
- return nil
- end
- -- Lit le contenu du fichier ligne par ligne
- local lines = {}
- while true do
- local line = file.readLine()
- if line == nil then break end
- table.insert(lines, {text = line, checked = false}) -- Ajoute chaque ligne avec une case "checked"
- end
- file.close()
- return lines
- end
- -- Fonction pour afficher le contenu avec des cases à cocher
- local function displayList(content)
- mon.clear()
- mon.setCursorPos(1, 1) -- Positionne le curseur au début
- for i, item in ipairs(content) do
- mon.setCursorPos(2, i)
- if item.checked then
- mon.write("[X] ") -- Case cochée
- else
- mon.write("[ ] ") -- Case décochée
- end
- mon.write(item.text) -- Affiche le texte de la ligne
- end
- end
- -- Fonction pour gérer les clics sur le moniteur
- local function handleClick(content)
- while true do
- local event, side, x, y = os.pullEvent("monitor_touch")
- if side == monitorSide then
- for i, item in ipairs(content) do
- if y == i then -- Vérifie si le clic est sur la ligne
- item.checked = not item.checked -- Inverse l'état de la case
- displayList(content) -- Met à jour l'affichage
- break
- end
- end
- end
- end
- end
- -- Programme principal
- local content = readFile(fileName)
- if content then
- displayList(content) -- Affiche la liste avec les cases à cocher
- handleClick(content) -- Gère les clics pour cocher/décocher les cases
- else
- print("Erreur: Le fichier est vide ou ne peut pas être lu.")
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement