Communauté Eggdrop

Version complète : [Résolu] Erreur lors de la lecture d'un fichier
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.

heretoc

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)
Tu peux soit d'abord faire une vérification avec file exists soit faire un catch sur l'ouverture du fichier
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 :)
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.