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 :

supprimer un espace en écritue


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 70
    Par défaut supprimer un espace en écritue
    Bonjour !

    Voici mon problème : j'écris dans un fichier ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    write(100,200)truc,p,bidule
    200 format(a10,i3,a41)
    où truc et bidule sont des chaines de caractères, et p un entier.

    Le problème est que mon p peut prendre des valeurs à 1, 2 ou 3 chiffres, du coup à cause du i3 dans le format, si le nombre de chiffres de p est inférieur à 3 alors j'ai 1 ou 2 espaces entre truc et p, ce que je ne veux absolument pas !

    Comment faire pour supprimer ces espaces ? (j'ai essayé de taper un entier du style 004, pour avoir 3 chiffres, mais cela ne me convient pas)

    Merci de votre aide.

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    en effet, en Fortran, ça n'est pas très commode, mais c'est possible:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
          If (p.lt.10) Then
            Write (100,'(A10,I1,A41)') truc,p,bidule
          Else If (p.lt.100) Then
            Write (100,'(A10,I2,A41)') truc,p,bidule
          Else
            Write (100,'(A10,I3,A41)') truc,p,bidule
          End If
    Jean-Marc Blanc

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Par défaut
    Ce problème est résolu depuis Fortran 90. Il suffit d'utiliser "i0" (ou f0.n pour les réels).

    Ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    write(100,'(a10,i0,a41)')truc,p,bidule
    fera ce que tu veux.

    Pour les variables caractères, il est possible de supprimer la longueur à côté du format "a" si cette longueur correspond à la longueur de la variable (ce qui en pratique est presque toujours le cas). Ton format se simplifie donc à '(a,i0,a)'.

    Finalement, la forme i3.3 t'aurait permit d'ajouter des "0" devant les chiffres significatifs des nombres plus petits que 100 et toujours obtenir une chaine de 3 caractères.

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 70
    Par défaut

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  2. Réponses: 9
    Dernier message: 27/10/2005, 13h20
  3. [DEBUTANT]Supprimer les espaces pour une requete
    Par tripper.dim dans le forum Oracle
    Réponses: 4
    Dernier message: 12/10/2005, 16h04
  4. Supprimer les espaces
    Par jmde dans le forum Access
    Réponses: 16
    Dernier message: 24/09/2005, 22h40
  5. Supprimer les espaces des noms de fichier
    Par Cathy dans le forum Linux
    Réponses: 20
    Dernier message: 04/08/2005, 17h13

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