- ベストアンサー
Fortranですが
少し説明しにくいのですが、、、 計算した結果をファイルに書き込むときに、 n=1だったらfile1.dat n=2だったらfile2.dat n=NだったらfileN.dat っという具合に自動的にデータファイルを作って、書き込んでくれるプログラムを作りたいのですが、こんなことはできますか? 贅沢を言いますと、 n=1だったらfile1_10.dat n=2だったらfile11_20.dat n=NだったらfileL_M.dat のような感じでLとM(上の場合はN)を変数としたデータファイルを作りたいです。 分かりにくい場合は補足要求お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
手っ取り早く character fn*20 write(fn,1001) 'file',n,'.dat' 1001 format(a4,i2,a4) とでもすればどうですか?fnにファイル名が入ります。 これだとformatの中がi2なのでnが1桁の時は1つ空白が出来てしまうし、3桁とか4桁だと入りきりませんが、その辺りの処理はお任せします。 変数が複数あっても同様です。
その他の回答 (2)
- terra5
- ベストアンサー率34% (574/1662)
こんな感じです。(cygwinのg77で動作確認) CHARACTER*30 FNAME L = 10 M = 20 WRITE(FNAME,100) 'file',L,'_',M,'.dat' 100 FORMAT(A,I2,A,I2,A) OPEN(4,file=FNAME) WRITE(4,*) 'ABCDE' CLOSE(4) しかし、formatのI2があるため、L,Mは2桁の場合しか正しく動作しません。 一桁だと空白が入るし、3桁以上だと*になるし。 FORTRANによるともう少し気の利いた変換があるかも知れませんが。
お礼
ご回答ありがとうございます。 少しformat文に工夫が必要みたいですね。 こちらは自分で考えてみます。
- colocolo62
- ベストアンサー率32% (1162/3624)
open文で、開くファイル名と番地を関連付けておいて、writeする際の番地と対応させれば出来るのではないでしょうか。
お礼
ご回答ありがとうございました。
お礼
ご回答ありがとうございます。 無事思っていた通りにできました。