Option d'un programme en fortran
Fermé
ladgalen
Messages postés
143
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
6 septembre 2013
-
18 mai 2008 à 14:41
tristof - 3 juil. 2009 à 14:53
tristof - 3 juil. 2009 à 14:53
A voir également:
- Option d'un programme en fortran
- Programme demarrage windows 10 - Guide
- Mettre en veille un programme - Guide
- Option d'ergonomie - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Forcer la fermeture d'un programme - Guide
3 réponses
ladgalen
Messages postés
143
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
6 septembre 2013
10
19 mai 2008 à 10:01
19 mai 2008 à 10:01
Salut
En fait en arrivant au labo quelqu'un savait comment on fait ...
En fortran il existe une fonction getarg(i,string) qui renvois les arguments d'entrée.
i est la position du string en entrée : 0 = le nom du programme
1-N = les mots qui suivent l'exécutable !
Merci à vous
En fait en arrivant au labo quelqu'un savait comment on fait ...
En fortran il existe une fonction getarg(i,string) qui renvois les arguments d'entrée.
i est la position du string en entrée : 0 = le nom du programme
1-N = les mots qui suivent l'exécutable !
Merci à vous
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
18 mai 2008 à 18:10
18 mai 2008 à 18:10
Bonsoir,
Sur le principe (entrée "manuelle" de noms de fichiers) il n'y a pas grand chose à ajouter dans ton programme Fortran (si j'ai bien compris ce que tu souhaites obtenir).
Sur le principe (entrée "manuelle" de noms de fichiers) il n'y a pas grand chose à ajouter dans ton programme Fortran (si j'ai bien compris ce que tu souhaites obtenir).
CHARACTER F_NAME_IN*64 CHARACTER F_NAME_OUT*64 ............................................... .............................................. WRITE (*,'(/,A,$)') ' - Entrez le nom du fichier en INPUT: ' READ (*,*) F_NAME_IN WRITE (*,'(/,A,$)') ' - Entrez le nom du fichier en OUTPUT: ' READ (*,*) F_NAME_OUT C C Partie controles effectuée sur les 2 variables saisies C
ladgalen
Messages postés
143
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
6 septembre 2013
10
19 mai 2008 à 08:59
19 mai 2008 à 08:59
Bonjour
Je connaissais cette méthode. Le problème c'est qu'elle nécessite que à chaque exécution l'utilisateur entre un à un tous les fichiers ce que je trouve laborieux (il y a 6 fichiers en tout).
Mon but était de pouvoir dans la ligne de commande donner le nom des fichiers en même temps que tu exécute le programme. En faisant par exemple exe -i input <RETURN>
En fait j'ai trouvé une autre méthode avec un petit script
Je fais
Dans script j'ai mis
Ensuite dans mon programme "exe", au début je lis sur le fichier moninput le contenue de la variable $1 qui est sensée être ce qu'il y a entre " " après script lors de l'exécution. Du coup en traitant la chaine charactere je récupère le nom de input et output ect ...
Je connaissais cette méthode. Le problème c'est qu'elle nécessite que à chaque exécution l'utilisateur entre un à un tous les fichiers ce que je trouve laborieux (il y a 6 fichiers en tout).
Mon but était de pouvoir dans la ligne de commande donner le nom des fichiers en même temps que tu exécute le programme. En faisant par exemple exe -i input <RETURN>
En fait j'ai trouvé une autre méthode avec un petit script
Je fais
script "-i input - o output"
Dans script j'ai mis
touch monimput echo $1 > moninput exe rm moninput
Ensuite dans mon programme "exe", au début je lis sur le fichier moninput le contenue de la variable $1 qui est sensée être ce qu'il y a entre " " après script lors de l'exécution. Du coup en traitant la chaine charactere je récupère le nom de input et output ect ...
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
19 mai 2008 à 09:38
19 mai 2008 à 09:38
Salut.
Je n'ai pas non plus trouver comment lire les arguments. Ta solution n'es certes pas très élégante, mais efficace, et c'est ce qui compte.
Sinon, tu peux interfacer avec du C, en remplaçant ton programme principal par une routine habituel avec des arguments.
Je n'ai pas non plus trouver comment lire les arguments. Ta solution n'es certes pas très élégante, mais efficace, et c'est ce qui compte.
Sinon, tu peux interfacer avec du C, en remplaçant ton programme principal par une routine habituel avec des arguments.
void progFortran(int,char*); int main(int argc,char**argv) { char s[128]; strcpy(s,argv[1]); for (int i=1;i<argc;++i) { strcat(s," "); strcat(s,argv[i]); } progFortran(argc-1,s); return 0; }
3 juil. 2009 à 14:53
++
tristof