2017-10-18 6 views
0

J'essaie de lire les données d'un fichier d'entrée (plusieurs fichiers en fait), puis d'effectuer certaines opérations sur les données de chaque fichier et d'imprimer la sortie de chaque fichier d'entrée sur une sortie. Fortran,Lecture de données à partir de fichiers d'entrée variables dans Fortran

il est donc quelque chose comme ça ..

Open (20, file="a0001.csv) 
[perform operation on this file] 
print output0001.txt 

input files :a0001.csv,a0002.csv,...a0100.csv

outputfiles :output1.txt, output2.txt,.... output100.txt

Je veux faire cela pour environ 100 fichiers.

Je pense une boucle pour faire 1-100 mais je ne sais pas comment faire une boucle à travers les fichiers d'entrée variables et ensuite obtenir une sortie par fichier

Répondre

1

Vous pouvez convertir entre les nombres et leur représentation de chaîne avec la read et write aussi. Donc, je ferais quelque chose comme ceci:

character(len=len('a0001.csv')) :: infile 
character(len=len('output100.txt')) :: outfile 

do i = 1, 100 
    write(infile, '("a", I4.4, ".csv")') i 
    write(outfile, '("output", I0, ".txt")') i 

    open(unit=20, file=infile, status="old", action="read", ...) 
    open(unit=30, file=outfile, status="new", action="write", ...) 

    !loop over contents of infile, write to outfile 

    close(30) 
    close(20) 
end do 
+0

Merci @ chw21, son fonctionnement parfaitement maintenant. Comment puis-je prendre toutes les sorties de ce code et imprimer dans un fichier csv? –