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 :

Ouvrir un fichier Html avec Perl


Sujet :

Langage Perl

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 289
    Points : 161
    Points
    161
    Par défaut Ouvrir un fichier Html avec Perl
    Bonjour tout le monde,

    Je crée un fichier Html avec un logiciel ensuite je souhaite ouvrir celui-ci avec Perl. Mais, il m'affiche le message d'erreur : "ERROR: unable to open the Html File".

    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
    # forward the SAS program's output
    if(open (SASOUTFILE, "$webout")){
    print "Content-type:text/html\n\n";
    binmode(SASOUTFILE); # In case there are graphics, explicitly specify binary mode for WIN32
    $nread = read(SASOUTFILE,$chunk,1024);
    while ($chunk ne ""){
    print ($chunk);
    $nread = read(SASOUTFILE,$chunk,5000);
    }
    close SASOUTFILE;
    } else {
    CgiDie("ERROR: unable to open the Html File");
    }
    #unlink ("$saslog"); #clean up temp files
    #unlink ("$sasfile");
    #unlink ("$webout");
    exit;
    Pourtant ma variable "$webout" se réfère bien à un chemin contenant un fichier Html : "C:\Users\Ash_Rmy\Documents\00-Fox.D________________\00-ExecDistant\p158\aaaa.html".

    Merci de votre aide.

    ash_rmy.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Pour avoir la raison de l'échec de open(), afficher le contenu de la variable $! dans le message d'erreur.
    Une pratique courante et utile est aussi d'afficher le chemin du fichier qu'on voulait ouvrir.

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 289
    Points : 161
    Points
    161
    Par défaut
    Bonsoir,

    Merci pour tes conseils.

    Lorsque je mets cette ligne de commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CgiDie("ERROR: unable to open the SAS output file - chemin : $ENV{$webout}");
    ça ne m'affiche que:
    ERROR: unable to open the SAS output file - chemin :


    Mais lorsque je met celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     CgiDie("ERROR: unable to open the SAS output file - chemin : \"$webout\"");
    Il m'affiche :
    ERROR: unable to open the SAS output file - chemin : "C:\Users\Ash_Rmy\Documents\00-Fox.D________________\00-ExecDistant\p158\cgi20623.html"

    Est ce ça veut dire que ma variable n'est pas bien interprété dans le code qui doit le lire ? Et c'est pour cela qu'il passe à l'erreur.

    Merci de votre aide.

    ash_rmy.

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 289
    Points : 161
    Points
    161
    Par défaut
    Bonsoir,

    Lorsque j'exécute le code ci-dessous :

    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
    #!C:/Perl/bin/perl.exe -s
    print "Content-type: text/html\n\n";
    $webout = "C:\\Users\\Ash_Rmy\\Documents\\00-Fox.D________________\\00-ExecDistant\\p158\\cgi7845.html";
     
    if(open (SASOUTFILE, "$webout")){
     
    				print "Content-type:text/html\n\n";
    				binmode(SASOUTFILE);  #In case there are graphics, explicitly specify binary mode for WIN32
    				$nread = read(SASOUTFILE,$chunk,1024);
    				while ($chunk ne ""){
    						print ($chunk);
    						$nread = read(SASOUTFILE,$chunk,5000);
    				}
    				close SASOUTFILE;
    }
    Il m'affiche des erreurs dans la log :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Sun Nov 08 20:44:41 2009] [error] [client 127.0.0.1] C:/Program Files/Apache Group/Apache2/cgi-bin/Open__Html.pl is not executable; ensure interpreted scripts have "#!" first line
    [Sun Nov 08 20:44:41 2009] [error] [client 127.0.0.1] (9)Bad file descriptor: don't know how to spawn child process: C:/Program Files/Apache Group/Apache2/cgi-bin/Open__Html.pl
    Merci de votre aide.

    ash_rmy.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Oublie $ENV{$webout} qui n'a rien à voir avec le problème vu que $webout est censé être un chemin de fichier, pas le nom d'une variable d'environnement.

    Par contre je suggérais d'inclure la variable $! dans le message d'erreur, ainsi que $webout. Tu as mis $webout mais pas $! : il faut mettre les 2.

    $! est une variable spéciale qui va être remplacée par la cause de l'erreur d'ouverture du fichier.

  6. #6
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 289
    Points : 161
    Points
    161
    Par défaut
    Bonjour,

    Il me met ce message d'erreur : "No such file or directory". Parce qu'il passe à l'étape "if(open (SASOUTFILE, "$webout")){..." avant de la fin de la création du fichier Html. Comment faire pour qu'il attende la fin de l'exécution du programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system(" c:\\psexec -i -s -d [......]);
    Y a-t-il des options à mettre en plus. Merci de votre aide.

    ash_rmy.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    D'après la doc, system() attend la fin du programme lancé avant de redonner la main, donc ça ne doit pas être ça le problème.

Discussions similaires

  1. Ouvrir un fichier HTML avec navigateur par defaut
    Par Terminator dans le forum Général Java
    Réponses: 18
    Dernier message: 29/05/2007, 14h53
  2. génrer fichier html avec template
    Par ramir dans le forum Langage
    Réponses: 5
    Dernier message: 19/10/2005, 13h30
  3. ouvrir un fichier html
    Par cels dans le forum Access
    Réponses: 3
    Dernier message: 06/09/2005, 16h00
  4. ouvrir un fichier Excel avec une requete perso
    Par legillou dans le forum Access
    Réponses: 9
    Dernier message: 21/06/2005, 15h14
  5. [java][Oracle]Ouvrir un fichier(blob) avec le browser
    Par marsup54 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 11/09/2003, 13h35

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