-
Problème fonction FLUSH
bonjour, j'ai un pogramme dans lequel j'utilise la fonction flush pour vider le buffer a chaque etape de ma boucle
enfin j'ecris dans des fichiers les resutats et puis avant la fin de mon programme je concatene tous mes resultats dans un seul fichier, mais je remarque qu'il manque les dernieres lignes qui existent pourtant dans les permiers fichiers, mais pas dans le fichier concatene!
j'ai l'impression que la fonction Flush ne vide pas totalement le buffer, enfin en tous cas a la fin! merci de m'aider, je ne sais si il existe une autre focntion pour faire ca...
merci
-
Salut!
D'après ma documentation (Compaq Fortran), FLUSH n'est pas une fonction, mais une directive de compilation; en outre, elle est spécifique de ce compilateur, donc non portable. Pour vider le buffer d'un fichier, il y a une méthode beaucoup plus simple: c'est de le fermer par l'instructionClose.
Jean-Marc Blanc
-
merci.
Je ne fermais pas le fichier parce que j'ecrivais encore dessus apres, mais si je suis oblige de fermer le fichier, puisque je n'ai trouve aucune solution, sauriez vous comment fait on pour ouvrir un fichier et ecrire a la fin.
c'est a dire quand je ferme le fichier et que je le reouvre pour ecrire, il ecrase ce qu'il ya deja. donc existe il quelque chose pour ecrire a partir de la fin du fichier.
Merci beaucoup
-
Bonjour,
la subroutine flush est censée faire comme tu l'as dit mais Jean-Marc a raison, ce n'est malheureusement pas portable comme subroutine.
Pour ouvrir un fichier et écrire directement à la fin, tu peux utiliser l'argument "position=append" (en Fortran 90 ou 95 je ne sais jamais):
Code:
open(unit=10, file="nomfichier", status="old", action="write", position="append")
Voilà ;)