fortranでtxtファイルの数値データを処理する方法

このQ&Aのポイント
  • fortranでプログラムを作りたいのですが、txtファイルの数値データを処理する方法について教えてください。
  • fortranのopen文でどんなファイルを開けるのか、また処理できるファイルの種類についても知りたいです。
  • ファイル名が1~100のように順番になっている場合、fortranでそれぞれのファイルを開いて計算処理することは可能でしょうか?
回答を見る
  • ベストアンサー

fortranでプログラムを作りたいのですが

今学校で、txtファイルの数値データを数式処理しているのですが、そのtxtファイル数が多く、一つ一つエクセルで開いてやるのがとても面倒くさくて(エクセルの中ではマクロで処理しているが)困ってます。  そこでfortranでプログラミングして処理しようかと思っているのですが、それに関してわからない事があります 1.fortranのopen文はどんなファイルでも開けるか? 2.またfortranで開いて、計算処理できるファイルはtxt datなどのファイルしかないのか? 3.ファイル名が1~100のように順番になっている時1~100まで順番で開いて、それぞれに計算処理出  来るようなプログラムは可能か?

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

順に: 1: どんなファイルでも open できます. 2: データがどのようにファイルに格納されているかによりますが, 基本的にはどんなファイルから読み込んでも処理できます. 3: ファイル名を実行時に生成できればいいはずなので, ``file1''~``file100'' に対して処理をするんだったらこんな感じ? DO I = 1, 100 WRITE(filename, '(''file'', I3)') I OPEN(10, FILE=filename) ここでユニット番号 10 に対して処理をする CLOSE(10) END DO

gifgif2000
質問者

お礼

ありがとうございました。解決しました。 ありがとうございました!

関連するQ&A

  • FORTRANのプログラム

    今、実験の解析を行っています。 読み込みたいテキストファイルには -1,0.4 0,0,233 -1,0.9 ・・など左側には-1か0のどちらかがあります。 これを -1,0.4 -1,0.9 を含むファイルと 0,0.0233 を含むファイルの二つに分けたいのです。 今プログラムを作っているのですがどうしてもできません。 どうしたらいいのでしょうか? program dat real x(10), y(10) open(7,file='test.txt') do i=1,10 read(7,*,end=200) x(i),y(i) end do do j=1,10 if(x(j).eq.0.0) then open(8,file='aftest1.txt') write(8,*) y(j) else open(9,file='aftest2.txt') write(9,*) y(j) end do close(8) close(9) 200 close(7) end

  • FORTRANでGUIプログラム

    FORTRANでGUIプログラム FORTRANでGUIを持ったWINアプリを作成することは不可能でしょうか? 現在自作でFEMプログラムをつくっています。入力ファイルはその度簡単なプログラムをつくって作成するか,汎用のプリプロセッサを利用しています。解析結果は自作で応力図などをeps形式で可視化してはきだすようにしていますが,市販のプログラムのように,画面上で節点や要素を作成していき,それがリアルタイムに画面に表示されて,入力ファイル作成から解析,後処理までをすべてマウス操作でできるようにしたいです。 C++ではできることは分かるのですが,FORTRANしか使ったことないので,FORTRANで作りたいと思っているのですが,やはり数値解析以外のことはFORTRANでやるのは無理なのでしょうか?FORTRANでプリプロセッサが自作できるかどうか,もし可能なら参考書籍などがあれば教えていただきたいです。よろしくお願いします。

  • fortran77で複数のファイルの読み込み

    fortran77で複数のファイルの読み込み 現在fortran77のプログラムを勉強しております。 ファイルが複数あり、すべてのファイルを読み込みたいのですが、ファイルの数がたくさんあるため、プログラムの行数が多くなってしまいます。 do ループで次々とファイルを開くプログラムを考えているのですが、思いつきません。 どなたか考え方でもいいので、教えてください。 ちなみに私が考えたプログラムは、 open(10,file='C:\FORTRAN\100.txt',status='old') open(11,file='C:\FORTRAN\121.txt',status='old') open(12,file='C:\FORTRAN\144.txt',status='old') open(13,file='C:\FORTRAN\169.txt',status='old') open(14,file='C:\FORTRAN\196.txt',status='old') open(15,file='C:\FORTRAN\225.txt',status='old') ・・・。 これを do ループで次々に開くことを考えると、 character*3 A(10) do 100 i=1,10 A=i*i open(i,file='C:\FORTRAN\A.txt',status='old') 100 continue ・・・ みたいな感じです。 ' 'の中の一部だけを変えたい場合のcharacter 文の使い方がいまいちよく分かりません。

  • Fortran90/Fortran95→Fortran77

    大学の授業でFortranを使ったプログラミングを勉強しています。 以下の文が大学のPCに入っているコンパイラでは問題なくコンパイルでき実行できるのですが、家のPCだとコンパイルすることが出来ません(以下の文でエラーが出ます) 大学のPCの開発環境はFujitsu-FORTRANだと思います(^ ^; 家のPCはSalford FTN77 Personal Edition CompilerとCPad for Salford FTN77を組み合わせて使用しています なぜエラーがでるのか自分なりに考えた結果、Fortran90/Fortran95のプログラムをFortran77のコンパイラでコンパイルしているからだと思います(全くの勘違いだったら指摘して下さい) Fortran90/Fortran95の開発環境がフリーで整えばいいのですが、見つからないのでプログラムを修正したいと思います そこで、力を貸していただきたいのです 前置きが長くなりましたが、エラーが出る文は以下のところです open(8,file='freq_ex13.dat',action='write',status='replace') ここを、Fortran77のコンパイラでコンパイルできるようにアドバイスを下さい よろしくお願いします

  • C言語からのFortranプログラムの呼び出し

    Fortranで記述した以下のような構成の有限要素法プログラムをC言語から呼び出したいのですが,具体的にどのようなコードを記述すればいいのかがわかりません.お教えいただけないでしょうか. サブルーチンinputおよびoutputでは入力および結果ファイルの入出力を行っています. 当方C言語はほぼ初心者です.Fortranのプログラミング環境としてはVisualStudio2005およびVisualFortran9.1を用いています. C言語のプログラミング環境としてはおなじくVisualStudio2005を使用したいとおもっております. [メインプログラム] open (5,file='input.dat') open (6,file='output.dat') /入出力用のファイルを開く call input(parameter1) /各サブルーチンで有限要素法を実行 call bound(parameter2) call matrix(parameter3) call solve(parameter4) call output(parameter5) close (5) /入出力用のファイルを閉じる close (6) stop end

  • Fortran;入出力の繰り返し

     まだまだFortran初心者なのですがよろしくお願い致します。  Fortranを用いて数値計算を行っておりまして、読み込ませたいデータが100ほどあるのですが(data1, data2, …, data100、というデータファイルでして、ヘッダーは同じで読み込ませたい数値のみが異なっています。)、1つずつ読み込ませるのはかなり効率悪いので連続して全てを一気に読み込ませるたいのですが、そのためにはどうしたらよいのか悩んでいます。  同様に結果のファイル(result1, result2, …, result100)も全て自動で書き出したいので、どちらもopen文をdo-continueでくくればよいのかとも思いやってみましたが上手く行きませんでした。(このようにしますとresult100のみしか作成されません)    かなり見当違いのことをやってしまっているのかもしれませんが、周囲にはFortranユーザーはおりませんので、こちらに質問させて頂きました。  正しいプログラムの書き方やアドバイスなど、ご教授頂ければ幸いです。

  • Fortranで1行飛ばして読み込む方法

    例えば次の内容が書かれているテキストファイル(data.txt)があるとします. ------------data.txt------------ time temperature 1.000E+00 5.632E+02 -------------------------------- このdata.txtに書いてある2行目の値をfortranを用いて読み込もうとすしたいのですが, fortranで open(100,file='data.txt') read(100,*) time, temperature と書くと, data.txtの1行目の'time temperature'の文字を読み込もうとし,当然エラーが出てしまいます. 読み込みたいのはdata.txtの2行目の数値のみなのですが, その方法がわかりません. 読み込む方法を教えていただけないでしょうか.

  • FORTRANについて

    今、大学の研究室でFORTRANの勉強をしています。そこで、院生から問題を出されました。それは、 テキストファイルから数字を読み込み、それらをFORTRANの中で計算し、その答えをまたテキストファイルに出力する、というプログラムです。 計算するところまではできたのですが、どうしてもテキストファイルに出力するプログラムがわかりません。 出力の仕方だけでも教えてください。教科書にもなく、図書館でも古い時代のものばかりで。しかも、僕は学校の関係でFORTRANを全く知りません。

  • WIndowsでのFortranプログラムのエラー

    Fortranで作られたらしいプログラムをドス窓で実行させた時に「Cannot Open File "F90.EER" #・・」のようなエラーメッセージが出てしまいプログラムが止まります。 これはどういう意味でどうすればよろしいのでしょうか?

  • fortranのopen文について。

    fortranのopen文のファイル名を指定するするとき、doループで名前を変えたいのですが、どのようにやればよいでしょうか? 具体的には、 do i=1,2 open(unit=10+i,file='file.dat',status='replace') とした時、unitと共にファイル名も'file1.dat'、'file2.dat'と変わるようにしたいのです。 よろしくお願いします。

専門家に質問してみよう