![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
いつもお世話になっています。
xxx.datのようなデータファイルの行数をカウントする方法についてご存知でしたら、お教えください。
具体的に今やりたいことを書きますと、
複数のデータファイルがあって、それぞれデータセットの行数が異なります。
ひとつひとつのデータファイルを読み込んで計算して、それぞれ別のファイルにアウトプットさせる、というのをひとつのfortranプログラムで実現させたいのですが、その前にそれぞれのデータセットの行数をカウントする必要があります(計算の必要上)。
プログラムの中で行数をカウントするところまで組み込めたら便利なので、いろいろ調べてみたのですが、結局わからず、現状はひとつひとつのデータファイルを見て行数を確認して...というところです。
「fortran77でこういうことできるのかな?」というレベルの質問で、急ぐ話でもありません。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
データを読みながらカウントすればよいのでは?
前回の回答( http://qanda.rakuten.ne.jp/qa4425688.html )を変更して
以下のようにすればカウントできます。
(エラー処理などは入っていませんので適宜入れてください)
dimension a(1000,4)
open(1,file="data.dat")
i = 1
100 continue
read(1,*, END=200) (a(i,j),j=1,4)
i = i + 1
goto 100
200 continue
write(6,*) "データ数 = " , i
do 300 k = 1, i
write(6, *) (a(k,j),j=1,4)
300 continue
この回答への補足
前回にひきつづきありがとうございます!
読み込むときにカウントすればよいのですね。
教えていただいた方法でうまくいきました。
これは質問の補足というより参考程度に聞きたいのですが、
上記の方法で前回の質問のような、空行を挟むデータを読み込むときには、
空行を除いた数がカウントされるようなのですが、
空行を含めた行数をカウントする場合はどのように指定すればよいのでしょうか?
No.3
- 回答日時:
空行を挟むデータを読み込むときにはフォーマット付文字列で読み込みます。
但し、古いFortranの知識ですので、もっと良い方法があるかもしれません。
character*80 c
dimension a(8,4)
open(1,file="data.dat")
i = 1
100 continue
read(1,'(A80)', END=200) c
if(len_trim(c) .gt. 0) then
read(c, *) (a(i,j),j=1,4)
end if
i = i + 1
goto 100
200 continue1234
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルでウインドウを...
-
排他的論理和 BCC(水平パリテ...
-
65536は2の何乗なのでしょうか?
-
モジュラス103の計算とは何でし...
-
VBAの再計算が反映されない件に...
-
【fortran77】データ行数のカウ...
-
[急募]Pythonについてです。
-
VBAでベッセル関数を使う方法
-
C言語で電卓を作成する。修正お...
-
アドオン利率を実質年率に変換
-
DLL(VC++で作った)で稼動中の...
-
サインカーブを計算したい
-
計算式の文字列を解析して自分...
-
60進数の四則計算
-
変化させるセルが変化しない
-
VBでReplace
-
VB6で正確なミリ秒を計測したい...
-
matlabで計算終了
-
なぜオーバーフローになるので...
-
Excel VBAにてFFT
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
パソコン
-
VBAで関数をつくる
-
階乗のマクロ
-
EXCELなどで「返す」という表現
-
排他的論理和 BCC(水平パリテ...
-
バッチファイルでウインドウを...
-
変化させるセルが変化しない
-
VBAの再計算が反映されない件に...
-
引き放し法による除算アルゴリ...
-
モジュラス103の計算とは何でし...
-
Visual C++でdebugとreleaseで...
-
エクセルで特定のセルのみを任...
-
数値計算の高速化 (cos, sin, exp)
-
傾いた四角形内の範囲の条件式
-
VBでReplace
-
骨折リスク評価のFRAXについて...
-
アドオン利率を実質年率に変換
-
入射角反射角
-
C言語についてです。 再帰を使...
おすすめ情報