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 :

[débutant]Perl lire un fichier texte


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 110
    Points : 62
    Points
    62
    Par défaut [débutant]Perl lire un fichier texte
    Bonjour

    Je suis débutant complet en perl/cgi.

    Je souhaite ouvrir en lecture un fichier "htdocs/medias/livre.txt" (je travaille en local)
    A partir d"un script cgi, je n'arrive pas à l'ouvrir de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #Ouverture en lecture du fichier texte du media
    open(FIC,"livre.txt") or die ("Erreur lors de l'ouverture du fichier livre.txt");
    $ligne= <FIC>;
    Lorsque j'affiche le contenu de $ligne, rien n'apparait et pourtant je n'ai pas le message d'erreur que devrait m'envoyer le "or die".
    Lorsque je change "livre.txt" par "medias/livre.txt" ou "http://localhost/medias/livre.txt" j'ai droit à une sublime erreur 500.

    Le répertoire cgi-bin étant hors du répertoire htdocs, comment accéder au fichier media.

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 110
    Points : 62
    Points
    62
    Par défaut
    Résolu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ../htdocs/medias/livre.txt

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 88
    Points : 70
    Points
    70
    Par défaut
    En dehors du fait que tu ouvres en CGI.

    Je pense qu'il faut mettre le HANDLE dans un tableau et apres tu parcoures le tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    open(FIC,"/etc/passwd") or die ...;
    my @fic = <FIC> ;
    foreach my $line (@fic)
    {
            chomp($line) ;
            print "$line \n";
    }

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par aikinhdo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    open(FIC,"/etc/passwd") or die ...;
    my @fic = <FIC> ;
    foreach my $line (@fic)
    {
            chomp($line) ;
            print "$line \n";
    }
    Non !
    Avec ce code tu charges l'intégralité du fichier en mémoire inutilement !
    Si tu veux traiter un fichier ligne par ligne, il suffit de le lire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    open my($file), '<', '/etc/passwd' 
      or die "Couldn't open /etc/password : $!\n";
    while( my $line = <$file> ) {
            chomp($line) ;
            print "$line \n";
    }
    --
    Jedaï

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 88
    Points : 70
    Points
    70
    Par défaut
    Désolé, j'essaie juste d'aider comme je peux

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Citation Envoyé par aikinhdo
    Désolé, j'essaie juste d'aider comme je peux
    Oui mais Jedai a dit NON !!!

    Disons que ta méthode est utile sur de petits fichiers mais c'est clair que s'amuser à charger un fichier de 200 Mo d'un coup en mémoire, ça va faire mal.


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

Discussions similaires

  1. Réponses: 10
    Dernier message: 25/06/2015, 15h18
  2. [Débutant] Comment lire un fichier texte de chiffres ?
    Par Bibifloch dans le forum Débuter
    Réponses: 3
    Dernier message: 29/09/2007, 21h29
  3. Réponses: 5
    Dernier message: 07/09/2007, 23h09
  4. [Débutant] Lire un fichier texte
    Par marcm dans le forum Pascal
    Réponses: 2
    Dernier message: 05/06/2007, 14h51
  5. Réponses: 1
    Dernier message: 24/11/2004, 16h54

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