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

Langage Perl Discussion :

Variable et fichier txt


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Par défaut Variable et fichier txt
    Bonjour à tous,

    J'ai un petit problème en perl (étonnant non ?) et je viens glaner quelques pistes.

    J'ai un fichier txt contenant des valeurs comme celles-ci (les valeurs les unes sous les autres) :

    Durnand
    Etienne
    Dubois
    Frederic
    Lehameau
    Boulvard

    Je dois récupérer en perl ces données dans deux variables afin d'effectuer une recherche en les corrélant (via module + objet, ça va chercher en base le troisième champ dont j'ai besoin) mais je ne vois pas trop comment le faire récursivement. Pour être très clair j'ai besoin de récupérer $nom + $prenom, de print le résultat puis de passer au deuxième couple ect...

    Merci de votre aide ^^.

  2. #2
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    Bonjour,

    Tu pourrais montrer ce que tu as déjà fait, sinon ça laisse croire que tu attends que ça tombe tout rôti

    Bon comme c'est la rentrée, on fait comme si, pour cette fois...

    Pour commencer des liens intéressants, mais il y en a plein d'autres sur developpez :
    La FAQ Perl
    Les Fichiers
    Débuter et progresser en Perl de Sylvain Lhuillier

    Boulvard.pl :
    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
    use strict;
    use warnings;
    use utf8;
    use File::Spec;														# Permet une meilleure gestion des noms des chemins sous tous les OS
     
    my $RepBase  = 'E:/_DEV/Developpez/Boulvard';
    my $In_Fic   = File::Spec->catfile( $RepBase, 'Boulvard.txt' );
     
    my ( $fh_Phrases, $Nom, $Prenom);
    open ( $fh_Phrases,'<:utf8', $In_Fic )
    		or die "Erreur sur ouverture fichier : $In_Fic : \n\t- $!\n";
     
    while ( $Nom = <$fh_Phrases> ) {
    	$Prenom = <$fh_Phrases>;
    	chomp $Nom;
    	chomp $Prenom;
    	print "-Nom=$Nom----Prenom=$Prenom=\n\n";
    }
    close $fh_Phrases;
    Sans commentaire pour que tu cherches un peu ce que ça fait

    Boulvard.txt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Durnand
    Etienne
    Dubois
    Frederic
    Lehameau
    Boulvard
    Bon ça fait juste ce que tu demandes !!!
    Mais ce n'est pas solide, notamment si le fichier .txt comporte des lignes vides, des commentaires, des noms sans prénom...

    Quant à :
    Citation Envoyé par Boulvard
    mais je ne vois pas trop comment le faire récursivement.
    Je ne comprends pas

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Par défaut
    Ba en fait je pense que tu as répondu à ma question ^^.

    La ou je péchais grandement c'était sur ce while, ou comment prendre ces deux variables puis les réinitialiser entre chaque itération, mais ça m'a l'air niquel pour mon utilisation.

    Un grand merci, je vais pouvoir avancer avec ça.

    P.S. je connaissais pas File::Spec, j'ai toujours utilisé open ($fh, '<', $filename), ça m'a l'air plus propre pour du multi plateforme.

  4. #4
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    Bonjour,

    File::Spec permet juste de construire le nom du fichier (Répertoire + Fichier).
    Et justement il évite des problèmes de codification des noms de répertoire selon qu'on est sous Windows ou Unix/Linux.
    Dans le temps sous Windows les noms de répertoires étaient construits avec des \ ; alors que sous Unix/Linux la norme est avec des /.

    Je l'utilise toujours pour rendre le programme 'indépendant' du répertoire depuis lequel il est lancé.
    Si je déplace le programme, je n'ai qu'à modifier $RepBase.

    J'utilise toujours le pragma use utf8; pour que les libellés dans le programme soient codés utf8.
    ET
    Pour la lecture et l'écriture j'utilise toujours '<:utf8' & '>:utf8'
    Pour convertir le contenu des fichiers en utf8.
    AVANTAGE : je n'ai pas de pb de codification, dans un fichier je peux mélanger du français et de l'arabe.
    INCONVÉNIENT : les fichiers générés sont un peu plus gros.

    Si tu travailles dans le répertoire courant et uniquement en français (codification iso-8859-16) tu n'as pas besoin de tout çà !
    Ça devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    use strict;
    use warnings;
     
    my ( $fh_Phrases, $Nom, $Prenom);
    open ( $fh_Phrases,'<', 'Boulvard.txt' )
    		or die "Erreur sur ouverture fichier : Boulvard.txt : \n\t- $!\n";
     
    while ( $Nom = <$fh_Phrases> ) {
    	$Prenom = <$fh_Phrases>;
    	chomp $Nom;
    	chomp $Prenom;
    	print "-Nom=$Nom----Prenom=$Prenom=\n\n";
    }
    close $fh_Phrases;

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

Discussions similaires

  1. Ecriture texte et variables dans fichier .txt
    Par Adjen dans le forum MATLAB
    Réponses: 8
    Dernier message: 18/12/2012, 14h40
  2. [Batch] Variables et fichier.txt :
    Par Arthryn dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 26/03/2010, 15h54
  3. Attribuer la valeur d'une variable à un fichier txt,VBScript
    Par MartinezGarcia dans le forum VBScript
    Réponses: 4
    Dernier message: 12/02/2008, 10h35
  4. ecrire variable ds fichier txt
    Par Cheorches dans le forum VB.NET
    Réponses: 7
    Dernier message: 09/08/2007, 11h05
  5. Réponses: 5
    Dernier message: 21/10/2005, 11h48

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