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

Fortran Discussion :

Communication Fortran System


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur modélisation aérodynamique
    Inscrit en
    Juillet 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur modélisation aérodynamique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 105
    Par défaut Communication Fortran System
    Bonjour,

    Je cherche un moyen de récuperer dans une variable la sortie d'une commande systeme. Par exemple je voudrai affecter à une variable type chaine de caractère le résultat de :
    Merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur modélisation aérodynamique
    Inscrit en
    Juillet 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur modélisation aérodynamique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 105
    Par défaut
    Re-bonjour,
    J'ai finalement réussi à contourner mon problème : je redirige la sortie de la commande système vers un fichier puis je lis le fichier dans le fortran :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CALL SYSTEM('ls > fichier.txt')
    OPEN(UNIT=10,FILE='fichier.txt,...)

  3. #3
    Membre expérimenté Avatar de Grame
    Profil pro
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Par défaut
    Salut

    Tu utilises ls donc tu es sous unix/linux.
    J'ai eu le même cas à traiter et je l'ai résolu de manière tout à fait bourrine mais ça marche.
    L'idée est de passer par un fichier et lire son contenu.
    Mais il faut avoir le résultat de ls sur une ligne donc piper avec xargs.
    Et ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      character (len = 1000) :: chaine
      call system ('ls | xargs > /tmp/bidon')
      open (21,file='/tmp/bidon', status='old', action='read')
      read (21, '(a)') chaine
      close (21)
      call system ('rm /tmp/bidon')     
      print *, trim(chaine)
      end

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur modélisation aérodynamique
    Inscrit en
    Juillet 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur modélisation aérodynamique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 105
    Par défaut
    Bonjour,
    oui je fais à peu près la même chose au "xargs" près.
    J'ai un peu regardé le manuel de xargs sans comprendre à quoi sert cette commande.
    Auriez-vous quelques lumières ?

    Sinon le code suivant me convient parfaitement aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    call system('ls > fichier')

  5. #5
    Membre expérimenté Avatar de Grame
    Profil pro
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Par défaut
    Bonsoir

    J'ai un peu regardé le manuel de xargs sans comprendre à quoi sert cette commande.
    Auriez-vous quelques lumières ?
    Lorsque que le nombre de fichiers est important, ls affiche le résultat sur plusieurs lignes.
    Du coup, ça n'est pas simple de mettre ça dans une seule chaine.
    xargs (en utilisation basique sans argument) force l'affichage sur une seule ligne.
    Alors c'est facile de récupérer le résultat dans une chaine.

    Bon WE

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur modélisation aérodynamique
    Inscrit en
    Juillet 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur modélisation aérodynamique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 105
    Par défaut
    Merci pour ces précisions

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/05/2012, 15h57
  2. Communication Fortran(.exe) et Matlab
    Par L'hermine dans le forum Fortran
    Réponses: 5
    Dernier message: 23/01/2011, 08h51
  3. Communication Fortran(.exe) et MATLAB
    Par L'hermine dans le forum MATLAB
    Réponses: 0
    Dernier message: 29/12/2010, 13h43
  4. Réponses: 9
    Dernier message: 02/03/2007, 10h36
  5. [Fortran 77] Commande "System"
    Par thegreatfab dans le forum Fortran
    Réponses: 3
    Dernier message: 21/07/2006, 19h04

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