Option d'un programme en fortran
ladgalen
Messages postés
158
Statut
Membre
-
tristof -
tristof -
Bonjour,
Je programme en fortran 90 et je souhaite écrire un programme où il y a des fichiers d'entrée et de sortie. Je souhaiterais que l'utilisateur puisse lors de l'exécution du programme donner le nom du fichier d'entrée et de sortie.
Par exemple
prog.exe -i fichier.in -o fichier.out
Où fichier.in est le fichier d'entrée et fichier.out est celui de sortie. Comme je suis sous linux si ceci est possible en écrivant un script je suis preneur aussi (bash). J'avais pensé à un script qui écrirait dans un fichier le nom des fichiers que lirait mon programme fortran mais je sais pas faire non plus.
Merci
Je programme en fortran 90 et je souhaite écrire un programme où il y a des fichiers d'entrée et de sortie. Je souhaiterais que l'utilisateur puisse lors de l'exécution du programme donner le nom du fichier d'entrée et de sortie.
Par exemple
prog.exe -i fichier.in -o fichier.out
Où fichier.in est le fichier d'entrée et fichier.out est celui de sortie. Comme je suis sous linux si ceci est possible en écrivant un script je suis preneur aussi (bash). J'avais pensé à un script qui écrirait dans un fichier le nom des fichiers que lirait mon programme fortran mais je sais pas faire non plus.
Merci
A voir également:
- Option d'un programme en fortran
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Option d'ergonomie - Guide
- Desinstaller un programme - Guide
- Programme word gratuit - Guide
3 réponses
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
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
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 ...
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;
}
++
tristof