• ベストアンサー

FORTRANで区切りを無視する方法

こんにちは この前ふと疑問に思ったことなのですが FOTRANのREAD文でデータを読むとカンマやスペース、タブなどを区切りとして読んでしまいます。 これらを無視して読む方法はあるのでしょうか? たとえば a,b,c,d e,f,g というデータがあって文字列として"a,b,c,d"を読み込み書き出すということです。 以前この作業をやろうと思ったのですが結局うまくいかず配列CHARA(4)を作り そこにCHARA(1)=a・・・という形で読み、吐き出すことにしました しかし、これでは処理に時間がかかってしまうために実用的ではありませんでした。 どうぞよろしくお願いします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

不定長データの場合、予想される最大長の文字列として読み込むしかないんじゃないでしょうか

white-shealter
質問者

お礼

やはりそうなんですか。 何かパラメータや属性で指定すると無視して読み込むことができるのかなと思って質問したのですが。

その他の回答 (2)

  • ultraCS
  • ベストアンサー率44% (3956/8947)
回答No.3

一言で言えば、処理系で違います。 ホストであれば、SYSINのJCLでのパラメータの切り方でで似たようなことが出来たのもありますが、PC系では、厳密に固定長のデータというのがあり得ないのでおそらく無理でしょうね。 また、characterとrealやintegerのequivalenceが定義できる処理理系ならテクニック次第では何とかなると思います。あるいは、レーベルコモンを使うとか(いずれも、最近のFORTRANでは死語に近いと思うけど)。

white-shealter
質問者

お礼

やはりそうですか。ありがとうございます。 冗長の場合は、長めのcharacter(len)で読み込んでTRIMで後ろを切るしかないですか。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

FORMAT 文で書式設定して READ 文でFORMAT 文番号を指定すれば良かったような気がします。

white-shealter
質問者

お礼

ありがとうございます 確かに固定長の場合はその方法でもいいですし、READのときに読み込む文字数を指定してやれば読めるのですが 冗長の場合は無理ですよね。 冗長のデータで一文を文字列として読む方法はないでしょうか?

関連するQ&A