Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


[Demande] Modification d'une ligne précise d'un fichier
#1
Bonsoir,

Je voulais savoir car je sais comment ecrire dans un fichier etc ....
Mais je ne sais pas comment remplacer une ligne précise, soit par son numéro de ligne, soit en detectant un mot qui figure sur cette ligne.

J'explique : j'ai un script de blagues qui peut envoyer les blagues toutes les X minutes mais qu'il faut regler dans le fichier.tcl.

Je voulais par exemple creer une commande avec un bind pub que quand je tape !addtemps X ( X etant un chiffre en minute ) ca me remplace dans le fichier blagues.tcl la ligne


tcl
# Intervalle en minutes pour afficher une blague au hasard.
	# Valeur par défaut : 120
	variable temps_interval 5


Pour le moment je l'ai reglé à 5 minutes, mais par la suite pouvoir la modifier en tapant sur le chan !addtemps 10 et que ca change dans le fichier le 5 en 10.

Si quelqu'un avait une idée, je suis preneur.
Merci d'avance.
#2
Bon, si c'est pour modifier une configuration (ce qui semble le cas), tu ne vas pas aller modifier le tcl lui-même. D'autant plus que ça n'aura aucun effet tant que le tcl ne sera pas rechargé. Donc il faut passer par un fichier de paramètrages séparé ou par une modification de la variable si c'est temporaire.

Sinon, si tu persistes à vouloir modifier la source, il faut lire chaque ligne du fichier et modifier celle que tu veux puis ré-enregistrer.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#3
Justement la phrase à changer qui concerne le temps de lancement des blagues se situe dans le .tcl lui meme

j'ai bien trouvé ca sur le wiki

tcl
proc getLine { fichier num } {
   set fi [open "monfichier.txt" r]
   set cpt 0
   while {[eof $fi] != 1 } {
      incr cpt
      set line [gets $fi]
      if { $cpt == $num } {
         putlog $line
      }
   }
   close $fi
}


Mais c'est apres je ne sais pas comment faire pour detecter la ligne concernée et la modifier puis ré-enregistrer. J'ai pas encore trouvé ca.
#4
Mais tu as lu ce que j'ai écris ?
Modifier la ligne dans le script ne changera rien tant que le script ne sera pas rechargé.

Imaginons que le namespace de ton tcl de blagues s'appelle "blague", il est bien plus simple de faire un script qui va juste faire:

tcl
set ::blague::temps_interval $valeur

Et au moins c'est immédiatement pris en compte et tu ne risques pas d'exploser le tcl d'origine.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#5
Si si j'ai bien lu ce que tu as écrit. Que si je modifie la ligne dans le tcl ca ne changera rien si il n'y pas de rehash.

Je posais juste la question quand meme pour savoir si il y avait un moyen de faire comme je le voulais.

Apres je me doute qu'il doit y avoir d'autres façon, mais moi et le codage et certaines mises en forme que j'ai un peu de mal. Mais bon tant pis ca viendra bien à force. Ou pas.


Possibly Related Threads…
Thread Author Replies Views Last Post
  Récuperation de chaque ligne dans un .txt Epsilon 7 4,574 19/03/2017, 11:46
Last Post: CrazyCat
  Modification Script Chanrelay protec 2 2,789 21/04/2013, 16:49
Last Post: protec
  Afficher les résultats sur une seule ligne ArKeNiS 3 4,723 25/09/2011, 14:24
Last Post: ArKeNiS
  Saut de ligne NesCrex 22 12,438 21/03/2011, 22:22
Last Post: CrazyCat
  Plusieurs messages a heure precise bewess 1 3,729 28/11/2009, 22:14
Last Post: CrazyCat
  Modification proxycheck crash 6 5,058 03/02/2009, 18:29
Last Post: CrazyCat
  animation a heure precise caline012 9 6,346 13/12/2007, 16:41
Last Post: caline012
  Lire une ligne précise sur une page html BdS 7 7,777 03/10/2006, 21:58
Last Post: BdS

Forum Jump:


Users browsing this thread: 1 Guest(s)