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 :

Ouverture de fichier avec une procedure !!


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Ouverture de fichier avec une procedure !!
    Salut a tous ,
    voila le code qui devrais m'ouvrir le fichier situe dans un chemin precise en parametre de ma fonction CRC_calculation:
    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
    #!/usr/perl5/bin/perl#!/tools2/kits/perl/5.003/solaris/bin/perl
    use strict; use warnings;
    #Fonction de calcul du CRC input=fichier a lire 
    sub CRC_calculation{
    my @params = @_; 
    my $file = $params[0];
    open (Fic,"$file")||die "Problemes d'ouverture: $!";
    my $j=0;
    while (( my $nb=sysread(Fic, my $enr,1)!=0))
    {$j++;
    }
    #my $nLgFile=length(F);
    print "\nnombre de caracteres lues: $j\n";
    #print "Longueur du fichier de Factory Settings: $nLgFile\n";
     
    close(Fic);
    #return ()
    }
    #appel de la fonction
    &CRC_calculation();
    Pour lancer le script je tape sous la fenetre de commande windows: "perl.exe nomDuScript.pl chemin_du_fichier(=C:/desktop/test.txt)"
    Je recolte alors une erreur me disant que le fichier n'existe pas ??

    merci d'avance de votre aide

  2. #2
    Jeh
    Jeh est déconnecté
    Membre actif Avatar de Jeh
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Points : 250
    Points
    250
    Par défaut
    Bah euh, tu passes pas de paramètre à ta fonction !
    Et puis, ton chemin passé est windowsien alors que tu bosses sous unix, vu la tête de ton shebang...

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 18
    Points
    18
    Par défaut ouverture de fichier avec procedure!!
    Salut Jeh et merci pour ta reponse !
    Je travaille sous Windows 2000 pro et j'ai pas compris le "Shebang"????
    J'ai passe $param[0] en parametre a l'appel de la fonction CRC_calculation et ca roule donc c regle merqui!!!

  4. #4
    Membre habitué Avatar de spirit_epock
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 153
    Points : 173
    Points
    173
    Par défaut
    shebang en fait c'est shabang la contraction de sharp "#" et bang"!"

  5. #5
    Jeh
    Jeh est déconnecté
    Membre actif Avatar de Jeh
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Points : 250
    Points
    250
    Par défaut
    Citation Envoyé par pinto_armindo
    Salut Jeh et merci pour ta reponse !
    Je travaille sous Windows 2000 pro et j'ai pas compris le "Shebang"????
    J'ai passe $param[0] en parametre a l'appel de la fonction CRC_calculation et ca roule donc c regle merqui!!!
    Le shebang, c'est la première ligne de ton script Perl. Elle est fortement recommandée car elle indique le chemin vers l'interpréteur Perl.
    Sous windows, en fait, il suffit, enfin je crois, de faire apparaitre le mot Perl à la fin du shebang car le chemin est défnit dans un variable d'environnement à l'installation d'activePerl.
    Par contre, c'est trompeur quand tu postes un msg .
    Car le tiens à une tronche d'unix...
    Pour être 'propre', je te conseille de mettre comme shebang :
    Enfin, si c'est bien le chemin vers perl.exe... (chemin par défaut à l'installation d'activePerl)


    Et oublie pas le tag 'Résolu' en bas de la page

  6. #6
    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
    Non, il vaut toujours mieux mettre un shebang unixien : en effet le shebang n'a aucun effet sous Windows (qui se base uniquement sur les associations de fichiers et l'extension pour exécuter ou ouvrir un fichier), par contre si tu passes ton script sous Linux avec un shebang windowsien tu ne pourras pas le lancer (sauf explicitement avec perl) alors que si tu utilisais un shebang unixien, il se lancerait sous les deux environnements.
    L'exception à cette rêgle (il en faut bien une...) c'est si on travaille avec Apache sous Windows en CGI : en effet Apache se réfère au shebang pour exécuter les cgi non binaire.

    --
    Jedaï

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Jedai
    Non, il vaut toujours mieux mettre un shebang unixien : en effet le shebang n'a aucun effet sous Windows (qui se base uniquement sur les associations de fichiers et l'extension pour exécuter ou ouvrir un fichier), par contre si tu passes ton script sous Linux avec un shebang windowsien tu ne pourras pas le lancer (sauf explicitement avec perl) alors que si tu utilisais un shebang unixien, il se lancerait sous les deux environnements.
    L'exception à cette rêgle (il en faut bien une...) c'est si on travaille avec Apache sous Windows en CGI : en effet Apache se réfère au shebang pour exécuter les cgi non binaire.

    --
    Jedaï
    Merci Jedai a plus

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

Discussions similaires

  1. Ouverture de fichier avec nom dans une autre langue
    Par bannik dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2015, 16h00
  2. Aide sur ouverture de fichier avec access
    Par FusionR dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 17/06/2004, 13h02
  3. [C#] [Oracle] Probleme avec une procedure stockée
    Par sronin1 dans le forum Accès aux données
    Réponses: 4
    Dernier message: 28/05/2004, 20h04
  4. Récupération des paramètres avec une procedure stockée
    Par samlerouge dans le forum Bases de données
    Réponses: 2
    Dernier message: 31/03/2004, 23h00
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 16h17

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