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

C Discussion :

wget programme C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Par défaut wget programme C
    salut ,
    je voudrais utiliser la commande wget dans un programme C pour récupérer des données d'un site

    alors je voudrais savoir si on doit ajouter une autre commande pour que ça marche sous C ou bien on met la commande directement

    merci

  2. #2
    Membre très actif
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Par défaut
    Salut;
    Tu es sur linux je crois ??
    tu peux utiliser l'instruction

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Par défaut
    oui je travail sur linux , en effet j'ai un petit code écrit en perl que je dois écrire en C , cependant je ne sais rien à propos de perl , alors j'essaye de tatonner mais ça marche pas tious le temps , alors ça serai bien que vous m'aidez à re-écrire ce code en C

    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/perl -w
    # download selected variables from NARR 15290102-09Z merged-a data from NCDC
     
    ###Usage info/check
     
    sub Usage{
     
    `error entree`;
    exit 1;
    }
     
    @ARGV ==4 or Usage();
    #@args = @ARGV;
     
    $date       = shift;
    $yymm       = shift;
    $nlat       = shift;
    $nlon       = shift;
     
    print STDERR "date $date $yymm \n";
     
    #Recuperation des donnees en ascii:
    `wget "http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/${yymm}/${date}/narr-a_221_${date}_0000_000.ascii?spfh2m[6][$nlat][$nlon]" -O out`;
    `wget "http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/${yymm}/${date}/narr-a_221_${date}_0000_000.ascii?tmp2m[6][$nlat][$nlon]" -O out2`;
    `wget "http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/${yymm}/${date}/narr-a_221_${date}_0000_000.ascii?pres2m[6][15][$nlon]" -O out3`;
    `wget "http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/${yymm}/${date}/narr-a_221_${date}_0000_000.ascii?pwatclm[6][$nlat][$nlon]" -O out4`;
    `echo $date \`grep '0..0' out\` \`grep '0..0' out2\` \`grep '0..0' out3\` \`grep '0..0' out4\` >> liste_dods-$nlat-$nlon `;
    exit 0;
    voilà , j'ai déja déchiffré le fait que la fonction prend en paramétre 4 variables , mais j'ai pas toujours compris comment écrire
    `echo $date \`grep '0..0' out\` \`grep '0..0' out2\` \`grep '0..0' out3\` \`grep '0..0' out4\` >> liste_dods-$nlat-$nlon `;
    en C. en effet ça fait quoi ce echo ??? je vois qu'il utilise out , out 2 .. qui contiennet les infos récupérés pas la commande wget.
    je sais que ma question est un peu hors sujet par rapport au forum mais bon


    merci

  4. #4
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    Bonjour,

    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
    29
    30
    31
    32
    33
    34
     
    #!/usr/bin/perl -w
    # download selected variables from NARR 15290102-09Z merged-a data from NCDC
     
    ###Usage info/check
     
    sub Usage{
     
    `error entree`;
    exit 1;
    }
     
    /* si nb_arg != 4 => message + sortie (fct usage() juste dessus)*/
    @ARGV ==4 or Usage();
    /* bon je sais plus ce que ca fait mais ca ressemble a une sauvegarde parametre sous une forme differente (de tableau a liste ou tree a liste, 
    t1 le perl, write once, read never again) */
    #@args = @ARGV;
     
    $date       = shift; /* premier arg dans date */
    $yymm       = shift; /* 2eme arg dans yymm */
    $nlat       = shift; /* ... */
    $nlon       = shift; /* ... */
     
    print STDERR "date $date $yymm \n"; /* affichage sur la sortie d erreur des param extraits */
     
    #Recuperation des donnees en ascii:
    /* appel a la commande shell wget avec l option -O pour rediriger la sortie standard vers un fichier */
    `wget "http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/${yymm}/${date}/narr-a_221_${date}_0000_000.ascii?spfh2m[6][$nlat][$nlon]" -O out`;
    `wget "http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/${yymm}/${date}/narr-a_221_${date}_0000_000.ascii?tmp2m[6][$nlat][$nlon]" -O out2`;
    `wget "http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/${yymm}/${date}/narr-a_221_${date}_0000_000.ascii?pres2m[6][15][$nlon]" -O out3`;
    `wget "http://nomads.ncdc.noaa.gov/dods/NCEP_NARR_DAILY/${yymm}/${date}/narr-a_221_${date}_0000_000.ascii?pwatclm[6][$nlat][$nlon]" -O out4`;
    /* affichage des lignes contenant "0..0" si je dis pô de bêtises concatenées dans le fichier lists_dods-param3-param4*/
    `echo $date \`grep '0..0' out\` \`grep '0..0' out2\` \`grep '0..0' out3\` \`grep '0..0' out4\` >> liste_dods-$nlat-$nlon `;
    exit 0; /* sortie */
    bon rien de bien mechant, les appel de fonction shell a appeler par des system( "wget ..." );
    la concatenation des arguments a coup de sprintf et pis c'est fini (toutes les variables commencant par $ doivent etre remplacees).

    bon apres cette partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `echo $date \`grep '0..0' out\` \`grep '0..0' out2\` \`grep '0..0' out3\` \`grep '0..0' out4\` >> liste_dods-$nlat-$nlon `;
    soit pareil appel a system() avec la meme chaine (a peu pres a voir les carac d echappement) ou bien lecture avec les flux C standard.

    voila, bon courage

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

Discussions similaires

  1. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08
  2. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  3. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05
  4. Comment débuter en programmation ?
    Par Marc Lussac dans le forum Débuter
    Réponses: 0
    Dernier message: 08/04/2002, 11h29
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

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