mehrere Dateien öffnen < Fortran < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 12:32 So 29.08.2010 | Autor: | Tyskie84 |
Hallo,
ich habe einen Ordner mit über 2000 Stationen und möchte aus jeder Station etwas in eine Datei herausschreiben. Ist es in Fortran möglich dass ich bei der ersten Station beginne diese also so öffne
open(10,file='C:......10010.txt')
wenn er das herausgeschrieben hat er die Textdatei 10010.txt schließt und die nächste öffnet, herausschreibt usw. ?
Vllt iwie über *.txt? Nur dies klappt nicht so recht.
Grüße
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 18:57 So 29.08.2010 | Autor: | rainerS |
Hallo,
> ich habe einen Ordner mit über 2000 Stationen und möchte
> aus jeder Station etwas in eine Datei herausschreiben. Ist
> es in Fortran möglich dass ich bei der ersten Station
> beginne diese also so öffne
>
> open(10,file='C:......10010.txt')
>
> wenn er das herausgeschrieben hat er die Textdatei
> 10010.txt schließt und die nächste öffnet,
> herausschreibt usw. ?
>
> Vllt iwie über *.txt? Nur dies klappt nicht so recht.
Ich verstehe deine Frage nicht so recht. Was genau möchtest du erreichen?
Natürlich kannst du die Einheit 10 schließen und neu öffnen:
open(10,file='C:......10010.txt')
close(10)
open(10,file='C:......10030.txt')
close(10)
Oder möchtest du den Dateinamen dynamisch erzeugen, indem du einen festen String und eine Zahl aneinanderhängst
C FILE enthält den endgültigen Filenamen
CHARACTER FILE*300
C I enthält den variablen Teil des Filenamens
INTEGER I
Do 30 I=10010,12000,10
C Filenamen zusammenbauen
WRITE(FILE,40) I
open(10,FILE)
read(10,fmt=...,end=20) ...
20 close(10)
30 continue
40 format('c:.....',A)
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 11:08 Mo 30.08.2010 | Autor: | Tyskie84 |
Hallo,
>
> Ich verstehe deine Frage nicht so recht. Was genau
> möchtest du erreichen?
>
> Natürlich kannst du die Einheit 10 schließen und neu
> öffnen:
>
> open(10,file='C:......10010.txt')
> close(10)
> open(10,file='C:......10030.txt')
> close(10)
>
Also Ziel ist es die Datein nacheinander zu öffnen um dort Sachen in eine Datei rauszuschreiben. Bedeutet:
open(10,file='C:.....10010.txt')
3. Spalte der Datei 10010.txt rausschreiben
close(10)
open(10,file='C:.....10070.txt')
3. Spalte der Datei 10070.txt rausschreiben
close(10)
open(10,file='C:.....10080.txt')
3. Spalte der Datei 10080.txt rausschreiben
close(10)
open(10,file='C:.....10100.txt')
3. Spalte der Datei 10100.txt rausschreiben
close(10)
usw. Das kann ich ja nicht 2000 mal machen
Am Ende soll dann eine Datei mit sämlichen 3.Spalten der jeweiligen Dateien (10010, 10070 usw) entstehen.
> Oder möchtest du den Dateinamen dynamisch erzeugen, indem
> du einen festen String und eine Zahl aneinanderhängst
>
> C FILE enthält den endgültigen Filenamen
> CHARACTER FILE*300
> C I enthält den variablen Teil des Filenamens
> INTEGER I
> Do 30 I=10010,12000,10
Deutet die 10 an dass es jeweils 10er Schritte sind, also 10010, 10020, 10030 usw? Leider ist das nicht der Fall denn die Dateien sind willkürlich.
> C Filenamen zusammenbauen
> WRITE(FILE,40) I
> open(10,FILE)
> read(10,fmt=...,end=20) ...
> 20 close(10)
> 30 continue
> 40 format('c:.....',A)
>
> Viele Grüße
> Rainer
>
>
Gruß
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 21:02 Mo 30.08.2010 | Autor: | rainerS |
Hallo!
> > Oder möchtest du den Dateinamen dynamisch erzeugen, indem
> > du einen festen String und eine Zahl aneinanderhängst
> >
> > C FILE enthält den endgültigen Filenamen
> > CHARACTER FILE*300
> > C I enthält den variablen Teil des Filenamens
> > INTEGER I
> > Do 30 I=10010,12000,10
>
> Deutet die 10 an dass es jeweils 10er Schritte sind, also
> 10010, 10020, 10030 usw? Leider ist das nicht der Fall denn
> die Dateien sind willkürlich.
Dann musst du die Liste der Dateinamen in dein Programm einlesen und darüber iterieren, etwa so:
character*80 filename
open(11,'LISTE')
10 continue
read(11,1000,end=20) filename
1000 format(A)
open(10,filename)
...
close(10)
goto 10
20 continue
close(11)
Viele Grüße
Rainer
|
|
|
|