IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tcl/Tk Discussion :

vérification d'un fichier txt


Sujet :

Tcl/Tk

  1. #1
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2022
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2022
    Messages : 8
    Points : 4
    Points
    4
    Par défaut vérification d'un fichier txt
    Bonjour je cherche un moyen pour vérifier les modifications d'un fichier txt, je me suis basé sur un système que j'avais mis au point pour un eggdrop qui annonce lorsqu'une dédicace est demandé dans un fichier txt, ce système me prévient lorsque le fichier dedicace.txt passe de zéro à un et me prévient régulièrement tant que je consulte pas ce qui a pour effet de vider le fichier qui repasse à zero.
    Hors pour ma nouvelle application c'est pour prévenir qu'un tchat est en cours dans une tchabox du site, il faudrait que cette fois je ne sois averti qu'une seule fois quand un nouveau message apparaît vu que je ne vide pas le fichier à la lecture, voici mon code actuel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     proc verifc { min hour day month year }  {
       		       set cont 0
    	set file [open scripts/data.txt r]
    	for {set temp "[gets $file]"} {$temp != ""} {set temp "[gets $file]"} {
    		set cont [expr $cont+1]
    		if {$cont==1} {
    		putserv	"privmsg  #back.slm :7• 4\[chat\] : $temp , !chatr pour répondre 7•"
        		}
    		}
    	close $file
     }
    dans le cas du tchat je voudrais être averti une seule fois quand le fichier passe de zero à un puis une nouvelle fois quand il passe de un à deux etc.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 528
    Points
    528
    Par défaut
    Bonsoir,

    Pour vérifier si un fichier a été modifié, il existe la commande file mtime <fichier> qui renvoie la dernière date de modification.

  3. #3
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2022
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2022
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Merci je vais essayer de concevoir mon script avec cette fonction.

  4. #4
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2022
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2022
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Par contre je ne vois pas comment concevoir mon script pour tenir compte de la modification de la variable: set var [file mtime fichier.xxx]
    quand il aura été modifié.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 528
    Points
    528
    Par défaut
    Bonsoir,

    Voici une solution possible où la date de modification du fichier est vérifiée toutes les 4 secondes :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    proc ObserveFichier {f {time -}} {
     set freq 4000
     if {$time eq "-"} {
       ObserveFichier $f [file mtime $f]
     } else {
       set ntime [file mtime $f]
       if {$ntime != $time} {
         puts "** Nouveau message **"
         ObserveFichier $f
       } else {after $freq ObserveFichier $f $ntime}
     }
    }
     
    ObserveFichier scripts/data.txt

  6. #6
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2022
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2022
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Merci je testerais et informerais si ça convient bien

  7. #7
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2022
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2022
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Alors j'ai modifié pour avoir le message sur le salon de tchat ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    proc ObserveFichier {f {time -}} {
     set freq 4000
     if {$time eq "-"} {
       ObserveFichier $f [file mtime $f]
     } else {
       set ntime [file mtime $f]
       if {$ntime != $time} {
         putserv "PRIVMSG #back.slm : ** 4 Nouveau message  tape !chatv pour voir,  !chatr pour répondre ** "
         ObserveFichier $f
       } else {after $freq ObserveFichier $f $ntime}
       }
    }
     
    ObserveFichier scripts/data.txt
    et maintenant je cherche a faire afficher dans le message le contenu de data.txt ou encore mieux la dernière ligne, ce qui permettrais de supprimer la commande !chatv
    mes essais pour le moment ne fonctionnent pas.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 528
    Points
    528
    Par défaut
    Bonsoir,

    Pour lire la dernière ligne d'un fichier on insère après la ligne 8 le code suivant :

    Code tcl : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    set fp [open $f r]
    set fd [read $fp]
    close $fp
    set data [split $fd "\n"]
    set lastline [lindex $data end]

    Le contenu de la dernière ligne se trouve dans la variable lastline.

  9. #9
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2022
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2022
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Merci je testerais ça et vous informerais.

  10. #10
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2022
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2022
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Parfait exactement ce que je cherchais, encore merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQLServer]Script import fichier .txt
    Par Jenbi dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/08/2006, 16h49
  2. remplir des tables a partir de fichiers TXT
    Par jeremie dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 10/03/2004, 14h50
  3. ouverture de fichier txt
    Par juguul dans le forum MFC
    Réponses: 11
    Dernier message: 18/12/2003, 09h44
  4. [langage] prob lecture fichier .txt
    Par martijan dans le forum Langage
    Réponses: 3
    Dernier message: 16/07/2003, 11h08
  5. communication fichier binaire fichier txt
    Par micdie dans le forum C
    Réponses: 3
    Dernier message: 05/12/2002, 00h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo