Utiliser un editeur de texte dans un programme
Par RaphAstronome le mardi, 7 avril 2009, 19:07 - Linux - Lien permanent
Saisir un long texte avec une instruction "gets" c'est pas très efficasse on aimerait parfois avoir un vrai éditeur de texte.
Toutefois il convient dans certaines situations d'éviter les librairies lourdes comme GTK.
Pour le faire on peut tout simplement utiliser nano sur un fichier temporaire.
On pourait aussi utilise vim ou emacs selon ce que vous préférez. Sous windows il faudrait utiliser notepad.
Voici donc la fonction :
def editText(demande, default="") # Crée le fichier temporaire file = Tempfile.open('txt') # Crée le message file.puts default file.puts file.puts "# "+demande file.puts "# Les lignes commencent par # sont ignorées" file.close # Propose l'éditeur de texte (ici nano) system "nano", file.path # Récupère le texte texte = "" file.open file.each do |l| if l.chomp.length == 0 or l.chomp[0] != "#"[0] texte += l end end file.close! texte.strip end
Cette fonction peut par exemple s'appeler comme ça :
str = editText(str)
Commentaires