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 :

[Débutant] Déplacer des fichiers dans un répertoire


Sujet :

Fortran

  1. #1
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut [Débutant] Déplacer des fichiers dans un répertoire
    bonjour,

    Je suis nouveau sous Fortran, et a vrai dire je ni connais rien. Je ne souhaite pas devenir un Expert, mais jusque connaître des commandes de programmes pour résoudre un ensemble de problème que je rencontre dans ma vie.

    Le premier, et je souhaite commencer par celui-ci est de copier un ensemble de fichier dans un même répertoire.

    Je vous explique le contexte avant tout. Je fais de l'optimisation de structure. Mon logicile d'optimisation me génère dans plusieurs dossier (runs) mes fichiers résltats avec des extension .THP et DSY.

    \...\run1\titi.thp
    \...\run2 \titi.thp
    \...\run3 \titi.thp
    etc..

    Mon nombre de run est connu à la fin de mes calculs.

    Je souhaite donc extraire tous ces fichier en les renoment précédé du numéro correspondant au run.

    Ex : \...\run1\titi.thp = \.....\resultats\01-titi.thp

    De ce fait je pourrai avoir dans un seul et même répertoire l'ensemble de mes fichiers titi.pc correspondant à mes différents calculs et les exploiter beaucoup plus rapidement.

    Je souhaite comprendre se que fait le programme dans la mesure du possible car je souhaite apprendre et devenir un

    Merci d'avance.

  2. #2
    Membre éprouvé
    Avatar de Ladgalen
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 466
    Points : 982
    Points
    982
    Par défaut
    Voilà le programme que je te propose

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
          program ranger
          implicit none
          ! le nombre de run que tu connais à l'avance
          integer,parameter::nrun=10
          integer::i
          character(len=4)::num1,num2
     
          ! ce programme est limité à 999 runs mais il peut être étendu
     
          Do i=1,nrun,1
     
            ! on ecrit une variable charactere pour les noms de fichiers
            write(num2,"(i4.4)")i
            ! i4.4 ça écrit 32 sous la forme 0032, il y aura toujours 4
            ! chiffre ce qui évite la suite :
     
            ! on écrit une variable charactere pour les noms de dossiers
            if(i < 10 ) then
              write(num1,"(i1)")i
            elseif ( i < 100 ) then
              write(num1,"(i2)")i
            elseif (i < 1000) then
              write(num1,"(i3)")i
            else
              STOP "probleme avec i"
            endif
     
            ! tu as un fichier dans "run"//num1 
            ! tu veux le mettre dans "resultats/"//num2//"-titi.thp"
     
            ! call system appelle une commande de la ligne de commande
            ! ici mv pour move
            ! la suite dépend de ton systeme pour moi c'est linux
     
            call system("mv ...../run"//trim(num1)//"/titi.thp"// &
               "...../resultats/"//num2//"-titi.thp" )
     
            !pourquoi trim : pour supprimmer les blancs en trop
            ! c'est quoi // => concaténer des chaines
            ! pas de trim sur num2 car avec i4.4 j'ai occupé les 4 places
            ! de la chaine
     
            ! pour voir ce qu'il fait tu peux faire écrire
            write(*,*)"...../run"//trim(num1)//"/titi.thp", &
                       "...../resultats/"//num2//"-titi.thp"
     
          Enddo
     
          end
    Si tu veux des explications n'ésite pas !

  3. #3
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut
    Merci pour ta réponse je vais l'étudier, et je te dis quoi........me lache pas

    Je suis sous Windows Xp pas sous Linux.........sa cause un problème ou pas ?

    Merci

  4. #4
    Membre éprouvé
    Avatar de Ladgalen
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 466
    Points : 982
    Points
    982
    Par défaut
    Normalement le fait d'être sous windows ne change rien au programme, juste à ce que tu met dans le call system(" ").

    par contre je ne connais pas les commandes du DOS qui permettent de déplacer un fichier ...

  5. #5
    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
    Points : 1 346
    Points
    1 346
    Par défaut
    Sous XP, la commande « mv » n'existe pas. La commande « move » permet de déplacer un fichier alors que la commande « ren » permet de renommer. Tu auras à modifier un peu le programme car « move » ne permet pas de renommer alors que » ren » ne permet pas de déplacer. Tu dois utiliser les 2.

    Pour avoir l'aide en ligne de XP pour ces commandes : Windows menu Démarrer, Exécuter..., Ouvrir: cmd, OK, help move ou help ren ou help tout court...

  6. #6
    Membre averti Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Points : 383
    Points
    383
    Par défaut
    Ok je regarde cela et je vous tiens au courant

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/04/2011, 17h15
  2. lire le nom des fichiers dans un répertoire
    Par wonderboutin123 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/11/2007, 04h22
  3. Réponses: 2
    Dernier message: 23/04/2007, 18h26
  4. [Débutante]Stocker des fichiers dans une BD
    Par bouba83 dans le forum Access
    Réponses: 5
    Dernier message: 19/05/2006, 08h41
  5. Réponses: 3
    Dernier message: 12/04/2006, 20h44

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