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

Ruby Discussion :

Travailler sur des fichiers textes


Sujet :

Ruby

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2018
    Messages : 12
    Points : 4
    Points
    4
    Par défaut Travailler sur des fichiers textes
    Bonjour,

    J'ai 3 fichiers textes dont je merge le contenu dans un fichier texte unique, si le fichier texte unique contient une valeur je l'affiche sinon si le fichier unique ne contient rien je passe a autre chose.C'est la que sa coince, la condition n'est remplie que si mon fichier texte unique contient quelque chose, si il est vide l'autre condition n'est pas exécutée.Voici le code:

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #!/usr/bin/env ruby
     
     
    require 'open3'
    require 'highline/import'
     
     
     
     
    puts "On attends que le fichier log se remplisse..."
    until File.read('log.txt').include?('connected')  # tant que le fichier log ne contient pas le mot connected on fait rien
    sleep 1
    end
    puts "Test"
    File.open('register.txt','w') do |f|    # on merge les autres fichiers logs en 1 seul fichier unique pour chercher une concordance avec le 1er fichier log.txt
     f.puts (File.read('log1.txt') << File.read('log2.txt') << File.read('log3.txt') ).split("\n").sort
    end
     
    File.open("register.txt").readlines.each do |register|
       puts register
    $register = register.chomp
     
    if File.read('log.txt').include?($register)
    puts "Oui il y a une concordance"
    else
    puts "Non il n'y a aucune concordance"
    end
    end

  2. #2
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 685
    Points : 1 376
    Points
    1 376
    Billets dans le blog
    7
    Par défaut
    Par défaut ,ton programme devrait démarré avec une variable du nom de concordance initialisé à faux (si le fichier 1 est vide ou si le mot 'connected' n’apparaît pas) j'imagine que dans les deux cas ,que logiquement le message devrait-être: puts "Non il n'y a aucune concordance" .

    Deuxième, ne serait-t-il pas plus logique de lire le log.txt et par la suite de vérifier la présence du mot 'connected' ? Parce que de la façon dont est écrit la première partie de ton programme. il n'y aura lecture de de log.txt que si le document débute par le mot 'connected'.

    Je ne sais pas si tu est sensé vérifier pour la présence du mot 'connected' dans les trois textes. Dans ce cas de figure, tu commence par tout merger et ensuite tu vérifier la présence du mot 'connected'. Tu change ta variable l'état de la variable concordance si le mot est détecté. Et tu finis, en déterminant le message approprie.

    J'y vais un peu au pif, parce que je ne sais pas exactement comment le problème a été énoncé.

  3. #3
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2018
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Coucou


    J'ai résolu mon problème mais merci quand meme de m'avoir répondu.C'était une mauvaise interprétation des conditions après la boucle until.

Discussions similaires

  1. Travailler sur des fichiers xlsx non visibles
    Par grimgrim dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/07/2014, 15h54
  2. Travail sur un fichier texte
    Par jeanphi45 dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 21/05/2010, 15h34
  3. Réponses: 1
    Dernier message: 27/10/2007, 10h36
  4. Réponses: 8
    Dernier message: 14/09/2006, 16h43
  5. Réponses: 7
    Dernier message: 23/03/2005, 22h23

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