0

fortran77 を使用してテキスト ファイルを文字列に読み取ることは可能ですか。私は実際に次の形式のテキストファイルを持っています

Some comments
Some comments

n1  m1  comment_with_unknown_number_of_words
..m1 lines of data..

n2  m2  comment_with_unknown_number_of_words
..m2 lines of data..
and so on

一方、n1、n2.. はオブジェクトの順序です。m1、m2、.. は、それぞれこれらのオブジェクトに関するデータを含む行数です。さらに調査するために、各オブジェクトのコメントも保存したいと思います。

どうすればこれに対処できますか?よろしくお願いします!

4

1 に答える 1

0

誰もこれについて私に電話をかけなかったなんて信じられない..私の謝罪は、実際にはコメントの最初の単語をつかむだけです...

------------元の答え----

F77をお勧めするわけではありませんが、これもそれほど難しい問題ではありません。最長のコメントを保持するのに十分な長さの char 変数を宣言し、リスト指示読み取りを使用するだけです。

integer m1,n1
char*80 comment

...
read(unit,*)m1,n1,comment

たくさんの余分なスペースをパディングせずに書き戻したい場合、それは少し手間がかかりますが、世界の終わりではありません.

f77 でまったくできないことは、直接アクセス読み取りに行かない限り、ファイルの行末に後続ブランクがあるかどうかを識別することです。

------------改善された答え

あなたがする必要があるのは、行全体を文字列として読み取り、文字列から整数を読み取ることです:

read(unit,'(a)')comment
read(comment,*)m1,n1

この時点でcomment、2 つの整数を含む行全体が含まれています (おそらくそれでうまくいくでしょう)。実際の文字列を取り出したい場合は、少しコーディングが必要です (文字列を単語に分割するための約 40 行のサブルーチンがあります)。興味があれば投稿することもできますが、他の人たちと同じように、あなたのコードが最新のコンパイラで動作するかどうかを確認することをお勧めします。

于 2013-01-11T21:28:14.147 に答える