Advertisement
BigBlow_

Untitled

Sep 3rd, 2024
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.45 KB | None | 0 0
  1. -- Nom du fichier à afficher
  2. local fileName = "list.txt"
  3.  
  4. -- Côté où est connecté le moniteur (ajuste-le selon ta configuration)
  5. local monitorSide = "right"
  6.  
  7. -- Vérifie si le moniteur est connecté correctement
  8. if not peripheral.isPresent(monitorSide) then
  9. print("Erreur: Aucun moniteur détecté sur le côté " .. monitorSide)
  10. return
  11. end
  12.  
  13. -- Attache le périphérique moniteur
  14. local mon = peripheral.wrap(monitorSide)
  15. mon.setTextScale(0.5) -- Ajuste la taille du texte (0.5 pour plus d'espace)
  16. mon.clear() -- Efface le moniteur
  17.  
  18. -- Fonction pour lire le contenu d'un fichier
  19. local function readFile(fileName)
  20. local file = fs.open(fileName, "r")
  21. if not file then
  22. print("Erreur: Impossible de lire le fichier " .. fileName)
  23. return nil
  24. end
  25.  
  26. -- Lit le contenu du fichier ligne par ligne
  27. local lines = {}
  28. while true do
  29. local line = file.readLine()
  30. if line == nil then break end
  31. table.insert(lines, {text = line, checked = false}) -- Ajoute chaque ligne avec une case "checked"
  32. end
  33. file.close()
  34. return lines
  35. end
  36.  
  37. -- Fonction pour afficher le contenu avec des cases à cocher
  38. local function displayList(content)
  39. mon.clear()
  40. mon.setCursorPos(1, 1) -- Positionne le curseur au début
  41. for i, item in ipairs(content) do
  42. mon.setCursorPos(2, i)
  43. if item.checked then
  44. mon.write("[X] ") -- Case cochée
  45. else
  46. mon.write("[ ] ") -- Case décochée
  47. end
  48. mon.write(item.text) -- Affiche le texte de la ligne
  49. end
  50. end
  51.  
  52. -- Fonction pour gérer les clics sur le moniteur
  53. local function handleClick(content)
  54. while true do
  55. local event, side, x, y = os.pullEvent("monitor_touch")
  56. if side == monitorSide then
  57. for i, item in ipairs(content) do
  58. if y == i then -- Vérifie si le clic est sur la ligne
  59. item.checked = not item.checked -- Inverse l'état de la case
  60. displayList(content) -- Met à jour l'affichage
  61. break
  62. end
  63. end
  64. end
  65. end
  66. end
  67.  
  68. -- Programme principal
  69. local content = readFile(fileName)
  70. if content then
  71. displayList(content) -- Affiche la liste avec les cases à cocher
  72. handleClick(content) -- Gère les clics pour cocher/décocher les cases
  73. else
  74. print("Erreur: Le fichier est vide ou ne peut pas être lu.")
  75. end
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement