FORTRANファイルの入出力方法とは?

このQ&Aのポイント
  • FORTRANファイルの入出力方法について説明します。メインプログラムをmain.datとし、入力するファイルをinput.txtとします。各アルファベットのグループごとに数字を読み込んで別々の出力ファイルを作成する方法について解説します。また、グループCの数字のみを読み込んで出力する場合についても説明します。
  • FORTRANファイルの入出力方法について、メインプログラムをmain.dat、入力ファイルをinput.txtとしています。各アルファベットのグループごとに数字を読み込んで別々の出力ファイルを作成する方法や、グループCの数字のみを読み込んで出力する方法について解説します。
  • FORTRANファイルの入出力方法について説明します。main.datをメインプログラム、input.txtを入力ファイルとして指定します。各アルファベットのグループごとに数字を読み込んで個別の出力ファイルを作成する方法や、グループCの数字のみを読み込んで出力する方法について詳しく説明します。
回答を見る
  • ベストアンサー

FORTRAN ファイルの入出力の方法がわかりません

メインプログラムを main.dat 入力するファイルを input.txt とします。 input.txtファイル内は A 12 23 B 49 93 C 66 25 ・ ・ ・ と続いてるとします。(数字は同じ数ずつ並んでて、その間にアルファベットがある) この時、2行目~3行目(12と23)、5行目~6行目(49と93)、8行目~9行目(66,25)、・・・・、とそれぞれのアルファベットのグループの数字を読み込んで、別々の出力ファイルを作るにはどうすれば良いかわかりません。つまり ファイルA 12 23 ファイルB 49 93 ファイルC 66 25 ファイルD ・ ・ ・ とアルファベットのグループ毎にファイルを作りたいのです。 DO文だけでできるのか?また、IF文を使う必要があるのか?直接アクセス入力(ACCESS='DIRECT')を使うのか?初心者でかなり調べたんですがよくわかりません。教えて頂けると幸いです。よろしくお願いします。 また、もしよろしければ、グループCのみの数字(66、25)だけを読み込んで、出力する場合についても教えてくれるとありがたいです。 (基本的なOPEN、READ、WRITE文の使い方はわかっています。)

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

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8021/17145)
回答No.1

(1)逐次ファイルとして入力ファイルを開く (2)一行読む (3)入力ファイルの最後に到達していたら現在の出力ファイルを閉じて(7)に行く (4)読んだものがアルファベットなら現在の出力ファイルを閉じて、新規で出力ファイルを開く (5)読んだものがアルファベットでないなら、それを出力ファイルに書く (6)(2)に行く (7)終わり グループCのみの数字の場合は(4)(5)のあたりを書き換えればできるでしょう。

spit7dd
質問者

補足

回答ありがとうございます。 (4)と(5)はどうやってプログラムを組めば良いかわからないのですが・・・。

その他の回答 (1)

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

あなたが使っている処理系に「文字がアルファベットかどうか」を判断する関数はありますか? あるならその関数を使って IF で何とかする. ないならそのような関数も自分で作って IF で何とかする. あるかないかは私にはわからないので自分で調べてください.

関連するQ&A

  • bat(バッチ)ファイルで文字入力受付・ファイルへ書込み

    急遽、仕事でバッチファイルを作成する必要がでてきました。 処理はそれほど複雑ではないのですが、コマンドプロンプトについてはまるっきりの初心者でして、困っております。 本来ならば、質問する場合でも基本的な事から調べて部分的に尋ねるべきなのですが、どうしても緊急で必要になるため恥ずかしながら投稿させていただきました。 コードの書き方・例について、皆様お知恵を貸してください。 求めているのは以下の処理です。 1.半角アルファベット1文字の入力を受け付ける(a~zまたはA~Z) 2.Sample.txtの中を検索し、Input= となっている行を見つける。 3.Input=A_input のように、1.で入力を受け付けたアルファベットをInput=の末に挿入、後に_inputと繋げて表記する。 4.Sample.txtを保存し、バッチ処理終了。 Sample.txtは以下のような具合のファイル ************************* Sample.txt 作者:酸 振男 ************************* Date=0529 Level=help Input= Tel=0120999999 以下続く... Input= の行は、ファイル全体でひとつしかないものとします。 Sample.txtのPathは、C:\age\Sample.txt とします。 可能であれば、アルファベット入力の際に1文字以上入力された場合は、「正しく1文字いれてください」と表記を出して、再入力を促す処理があれば、と思っています。 どうか、よろしくお願いします。

  • リストファイルに一致する個数のカウントについて

    以下にリストファイルと、インプットファイルがあります。 リストファイルのそれぞれにインプットファイルの中で何個一致するかを出力させたいです。 目的にかなうawkや perlなどのスクリプトを教えてほしいです。 list.txt a b c d ・・ input.txt 1 a b c 2 a d 3 4 b c ・・ output.txt a 2 b 2 c 2 d 1 ・・

  • ファイルの入出力に関して

    ファイル入出力の部分なんですが FILE *input,*input2,*input3; input=fopen("070921\10.txt","r"); input2=fopen("070921\20.txt","r"); input3=fopen("070921\30.txt","r"); 以下省略.  上記のようなプログラムに関して,フォルダの070921とテキストファイルの10,20,30の部分をコマンドライン上で入力させてひとまとめでデータを読み込みたいと考えています.  gets関数を用いて,プログラムの一部を以下のように作成してみたのですが入力に手間がかかります. char fin[80]; gets(fin); input=fopen(fin,"r"); 以下省略. 何か良い方法があれば教えてもらえないでしょうか.

  • DOSコマンド COPY(複数ファイルをまとめる)

    DOSコマンドで、複数ファイルをまとめるのに COPYコマンドを使用しています。 まとめたファイル上にコメント文を加えたいのですが どうすればできるのでしょうか? 下記は、a.txtとb.txtをまとめて、c.txtにしています。 copy a.txt + b.txt c.txt だと、 そのままデータがつながってしまい、コメント文を 入れることができません。 [a.txt] aaa [b.txt] bbb  ↓ [c.txt] "Input A.txt" aaa "Input B.txt" bbb

  • c++ 入力、出力まわりについて

    Mac OSX 10.7.3です。 c++で書いたプログラムをコンパイルして以下のような数字の集まりを上の行から順に入力したいです。 このプログラムはこの数字列の値により出力をするものとします。 3 3 6 100 2 64 main.cppというコードを使っていて上の数字を保存した input.txtというファイルがあり、output.txtという出力ようのファイルがDesktop下にあります。 ここでターミナルで cd Desktop/ g++ -Wall main.cpp ./a.out < input.txt > output.txt とリターンしてもうまくoutput.txtに出力されません。

  • 3の倍数行まで1から数字を挿入し,カウントアップしていく方法

    よろしくお願いします.タイトル通り「3の倍数行まで1から数字を挿入し,カウントアップしていく方法」をテキストファイルで処理したいと思っています. 具体的にインプットとアウトプットは以下のようにしたいです. input.txt ----------------- a b c d e f g h i ・ ・ ・ ・ ・ output.txt ----------------- a,1 b,1 c,1 d,2 e,2 f,2 g,3 h,3 i,3 ・,4 ・,4 ・,4 ・,5 ・,5 perlでのファイルの読み込ませ方は理解していますので 読み込んで出力するまでの処理を教えていただけないでしょうか. よろしくお願いします.

    • ベストアンサー
    • Perl
  • テキストファイルの入出力

    ACCESS/VBAで、FileSystemObjectを利用して、A.txtを読み込み、A.txtの先頭の文字列が、"A"のものをB.txtに書き出しするコーディングを教えていただきたいので、お願いいたします。

  • ファイルのデータの並べ替えについて

    data.txtに入力されたA 100 B 300 C 200 D 300を 数値の大きい順に並べて、data2.txtに出力するプログラムを作成したいのですが何をすればいいのかわかりません。 一応、data.txtファイルはプログラムできました。 ヒントだけでもいいので教えてください。 あと、同点の場合はアルファベット順にしたいです。 よろしくご指導お願いします<(_ _)>

  • fortranに関する質問です。

    fortranに関する質問です。 100個の整数データが並んでいるdate1.TXTとdata2.TXTがある。この二つのファイルを読み込んで、200個全てのデータを小さい順に並び替え、1行に10個ずつの整数を印字して画面上に出力しなさい。全データの和、平均値、最大値、最小値を求めて出力しなさい。 1、 データファイルはそれぞれ100個の数字が並んでおり、date1.TXTには3桁の数字が5個ずつ20行、data2.TXTは2桁の数字が10個ずつ10桁の型式できにゅうされている。 2、配列を用いる方法でプログラムを作ること。 以上の問題が全く理解できません。 出来れば、詳しく教えていただきたいです。

  • リストファイルと一致する行の抽出

    2つのファイルがありまして、list.txtでリストアップしたキーワードに一致するinput.txt一行目の行を抽出したいです. fgrep -f list.txt input.txt ではout of memoryで行えません。 他に何かいい方法がありませんでしょうか? あれば教えていただきたいです。 list.txtはsortせずにこの順序を維持したいです。 <list.txt> d c a h g x k . . <input.txt> a 12 43 .. b 29 44 .. c 12 66 .. c 33 55 .. d 44 55 ..