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


[Résolu] Erreur lors de la lecture d'un fichier
#1
Bonjour,
Voici mon code fonctionnel m'ouvrant un fichier .txt

tcl
bind pubm -|- "*" pub_modo2
proc pub_modo2 {nick host hand chan arg} {
        set arg [mirc_strip $arg]
        set cmd [lindex $arg 0]
      set cmd2 [string tolower [lindex $arg 1]]
      set fichiertext "scripts/project/modo/$cmd2.txt"
        switch -- $cmd {
      "!modo2" {
      if {$cmd2 eq "" } {putfast "NOTICE $nick :\0034SyntaXe :\0033 !modo2 <pseudo1/pseudo2> "; }
      set ouverturefichier [open $fichiertext r]
      while { ![eof $ouverturefichier] } {
      gets $ouverturefichier lecturefichier
      set len [string length $lecturefichier]
      set lecturefichier [string map {"Pseudonyme :" "\0034Pseudonyme :\0033" "Prenom :" "\0034Prenom : \0033" "Departement :" "\0034Departement :\0033" "Description :" "\0034Description :\0033" "Phrase perso :" "\0034Phrase perso :\0033"} $lecturefichier]
      putdccraw 0 [expr $len + 1] "$lecturefichier\n" 
      putquick "PRIVMSG $nick :\0034$lecturefichier"
      }
      close $ouverturefichier
      return 1
      }
   }
}


Si je tape "!modo pseudo1" il va me sortir le texte suivant avec les couleurs que j'ai mis dans le code:

Code:
Informations sur le moderateur
Pseudonyme : Pseudo1
Prenom : Pseudo2
Departement : XX
Description : Aime les lasagnes
- - - -
Phrase perso : Aucune idée
Maintenant si je tape "!modo toto" il me retourne l'erreur suivante (qui est normal):


Code:
couldn't open "scripts/project/modo/toto.txt": no such file or directory

M'a question:
Comment faire en sorte pour que le code renvoie une erreur si le .txt n'existe pas?
(J'ai fait divers essai non concluant pour cela que je me retourne vers vous)
#2
Tu peux soit d'abord faire une vérification avec file exists soit faire un catch sur l'ouverture du fichier
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#3
Ca n'engage que moi, mais je trouve qu'utiliser catch plutôt que file exists, c'est comme faire un créneau avec sa voiture en écoutant si ça racle plutôt que d'utiliser les rétroviseurs :)
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
#4
Je suis bien d'accord, pour ma part je n'utilise que très rarement les catch, et jamais pour tester un fichier. Uniquement pour des connexions (DB ou serveurs distants) dont je ne peux maitriser l'état.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away


Possibly Related Threads…
Thread Author Replies Views Last Post
  [Resolu] Ajout de couleur durant une lecture de fichier heretoc 0 3,541 16/12/2012, 02:10
Last Post: heretoc
  [Résolu]Fichier vide. aliasangelius 1 3,621 18/09/2012, 15:46
Last Post: aliasangelius
  [Résolu]Une sauvegarde de fichier. aliasangelius 4 3,872 16/07/2012, 16:19
Last Post: aliasangelius
  problèmes de collision lors d'opérations d'écriture dans un fichier MenzAgitat 4 4,879 28/06/2011, 20:12
Last Post: djkenny
  Lecture fichier (ou bdd) heretoc 5 5,654 15/06/2011, 23:31
Last Post: heretoc
  Erreur Trivia.tcl ( résolu ) ShadoW 4 6,753 27/04/2011, 02:10
Last Post: despotes
  voir l'ip lors d'une connection lesny 4 4,215 06/01/2011, 22:57
Last Post: lesny
  Erreur lecture fichier.db heretoc 6 4,821 10/07/2010, 03:01
Last Post: heretoc
  erreur au lancement de trivia.tcl [résolu] dimoala 3 4,704 13/08/2009, 18:22
Last Post: CrazyCat

Forum Jump:


Users browsing this thread: 1 Guest(s)