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 :

copier ligne fichier1 vers fichier 2


Sujet :

Fortran

  1. #1
    Futur Membre du Club
    Homme Profil pro
    UTC Compiegne
    Inscrit en
    Juillet 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : UTC Compiegne
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut copier ligne fichier1 vers fichier 2
    bonjour a tous. j'aurais besoin de votre aide.

    j'ai un fichier, contenant des lignes de texte. je souhaiterais extraire par exemple les lignes 5 à 1000 vers un fichier 1 et 1500 a 2000 vers un fichier 2 en fortran.

    quelqu'un aurait il une idée ?


    merci

  2. #2
    Membre régulier Avatar de moomba
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 134
    Points : 104
    Points
    104
    Par défaut
    Pas optimisé du tout, mais l'idée est là, à toi d'améliorer :

    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
    35
     
    integer :: n
    character(len=10000) :: montampon
     
    open(10,file="Monfichier0")
     
    ! Je me décale de 4 lignes pour arriver sur la 5ième (on ne lis rien)
    do n=1,4
    read(10,*)
    end do
     
    ! Première Partie
    open(11,file="Fichier1")
    do n=5,1000
    read(10,*) montampon
    write(11,*) trim(adjustl(montampon))
    end do
    close(11)
    close(10)
     
    open(10,file="Monfichier0")
    ! Je me décale de 1499 lignes
    do n=1,1499
    read(10,*)
    end do
     
    ! Seconde Partie
    ! Première Partie
    open(12,file="Fichier2")
    do n=1500,2000
    read(10,*) montampon
    write(12,*) trim(adjustl(montampon))
    end do
    close(12)
    close(10)
    adjustl permet de décaller à fond vers la gauche la chaine de cartactère, et trim ne garde que ce qui contient un caractère autre que espace ou nul, pour éviter d'avoir des lignes de 10000 charactères de long.

    Cette méthode est moche et lente. plus d'infos ici http://fortran.developpez.com/faq/?page=section5

    Tu peut aussi lire l'ensemble du fichier d'un coup en mémoire, puis l'écrire d'un coup, c'est nettement plus rapide (tu fait un tableau de character)
    "Celui qui à le pouvoir de faire le mal, mais qui ne le fait pas, celui là est le prince de l'univers." (shakespeare)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    UTC Compiegne
    Inscrit en
    Juillet 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : UTC Compiegne
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    un grand merci !!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 488
    Points : 593
    Points
    593
    Par défaut
    Bonjour,

    Une remarque en passant: attention au spécificateur de format '*' pour la lecture:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    read(10,*) montampon
    La lecture se fera alors jusqu'au premier séparateur (typiquement un espace) rencontré.
    Il est préférable de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    read(10,'(a)') montampon
    si on veut éviter ce genre de troncature.

  5. #5
    Membre régulier Avatar de moomba
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 134
    Points : 104
    Points
    104
    Par défaut
    Effectivement, je n'ai pas fait attention, autant pour moi
    "Celui qui à le pouvoir de faire le mal, mais qui ne le fait pas, celui là est le prince de l'univers." (shakespeare)

Discussions similaires

  1. Copier lignes d'un fichier dans un nouveau fichier
    Par sumakali31 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 04/04/2012, 12h16
  2. [XL-2003] copier une ligne d'un fichier txt vers une cellule
    Par hatemhatem dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/03/2010, 14h20
  3. Copier un certain nombre de lignes d'un fichier vers un autre fichier
    Par Aicha78 dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 14/01/2009, 23h35
  4. Réponses: 62
    Dernier message: 05/07/2006, 14h48
  5. comment copier une ligne d'un fichier à un autre
    Par debutant-1 dans le forum C
    Réponses: 14
    Dernier message: 26/06/2006, 22h01

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