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