Communauté Eggdrop
[Résolu] Erreur lors de la lecture d'un fichier - Version imprimable

+- Communauté Eggdrop (https://forum.eggdrop.fr)
+-- Forum : Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum : Scripts TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+--- Sujet : [Résolu] Erreur lors de la lecture d'un fichier (/showthread.php?tid=1291)



[Résolu] Erreur lors de la lecture d'un fichier - heretoc - 20/12/2012

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)


RE: Erreur lors de la lecture d'un fichier - CrazyCat - 20/12/2012

Tu peux soit d'abord faire une vérification avec file exists soit faire un catch sur l'ouverture du fichier


RE: [Résolu] Erreur lors de la lecture d'un fichier - MenzAgitat - 21/12/2012

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 Smile


RE: [Résolu] Erreur lors de la lecture d'un fichier - CrazyCat - 25/12/2012

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.