[FORTRAN] gestion de fichier

Résolu/Fermé
m0n0-le-14r3 Messages postés 174 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 25 octobre 2005 - 25 mai 2005 à 10:58
m0n0-le-14r3 Messages postés 174 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 25 octobre 2005 - 25 mai 2005 à 11:53
bonjour a tous...

comme personne ne parle de fortran et qu je trouve ça deplorable ( franchement un si beau lagage, hein?!! ) je pose une ch'tite question...

je dois transformer du fortran en C ( aie aie aie )... lors de l'ouvertur d'un fichier le fortran utilise un numéro pour désigné le fichier.

ma question est : A QUOI CORRESPOND CE NUMERO ???

est - ce l'inode du fichier, ou son numéro de liste ...

merci d'avance pour vos reponses... !
A voir également:

7 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
25 mai 2005 à 11:00
y a des chance que ce soit l'inode non ? L'autre solution perso, je vois pas ce que tu veux dire.

Bon sinon, qqchose de plus sérieux pendant que tu est la : ou et quand ?
0
m0n0-le-14r3 Messages postés 174 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 25 octobre 2005 17
25 mai 2005 à 11:02
ben je sais pas .. j'dirai comme d'ab !
--
-- je vis dans un rêve dont je ne me reveille jamais...--
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
25 mai 2005 à 11:05
Après une recherche google : http://perso.enstimac.fr/~gaborit/lang/CoursDeFortran/Fortran-node12.html#SECTION001230000000000000000

Ouverture d'un fichier

Il s'agit d'ouvrir un fichier déjà existant ou d'en créer un nouveau. Le FORTRAN associe au nom du fichier un entier appelé « unité », auquel toutes les instructions FORTRAN de manipulation des fichiers se référeront. Autrement dit le fichier n'est appelé par son nom qu'au moment de l'ouverture.

Syntaxe
open( 	numéro d'unité,
  	file=chaîne de caractère,
  	form=chaîne de caractères,
  	status=chaîne de caractères,
  	err=numéro de label)

Conclusion : Si j'en crois ce qui est écrit, ce numéro tu n'en as rien à battre en C (et ce n'est ni un inode ni une adresse, c'est un nombre arbitraire), puisque tu fais directement un :
FILE *fid=fopen("plop","r");


Ensuite en C tu travaille avec ce fid (qui n'est pas un inode mais une adresse).
0
m0n0-le-14r3 Messages postés 174 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 25 octobre 2005 17
25 mai 2005 à 11:09
ok mamiemando... si qqun peut approuver ce que tu dis, ca me va ... ( j'prefere avoir plusieurs avis ;) )

merci en tout cas !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
25 mai 2005 à 11:14
En fait je connais pas le fortran (alors que je suis sensé en avoir fait... à les joies des projets en commun en info ;o)). Mais je sais que c'est un langage qui a été fait pour les scientifiques, a priori ça été fait pour pour être "simple". Donc ça m'étonnerait que ça fasse intervenir des notions d'informatiques pures genre inode ou adresses...

Maintenant c'est vrai qu'un avis supplémentaire serait appréciable ;o)
0
Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 208
25 mai 2005 à 11:43
Je confirme !!!

De mes lointaines années Fortran / IBM ... et des cartes perforées, j'ai retenu que les assignations de fichiers ne pouvaient être faites qu'à l'extérieur du programme (donc dans la "procédure", ancêtre du "script" Unix).
Les "numéros logiques" connus du programme correspondaient à un "nom logique" (en FT, comme ForTran) d'une "carte de contrôle" au niveau de laquelle était fait le lien avec le fichier physique. Ce mécanisme est toujours valable, au nom de la compatibilité ascendante des OS.

Exemples :
>> entrée de données :
--> unité logique 5 (~ entrée standard)
--> //FT05F001 DD * (suivi du flot de cartes) ou
--> //FT05F001 DD DSNAME='nomdufichier',DISP=(OLD,KEEP,KEEP)
--> READ(5,format[,END=étiquette) liste
>> sortie:
--> unité logique 6 (~ sortie standard)
--> //FT06F001 DD ...
--> WRITE(6,format) liste (ou PRINT)
>> autres :
--> unité logique xx : 1 à 99
--> //FTxxF001 DD ...
--> READ(xx,...) ou WRITE(xx,...) selon usage
0
m0n0-le-14r3 Messages postés 174 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 25 octobre 2005 17
25 mai 2005 à 11:53
ok merci Marden..
0