いつもお世話になっています。
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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- その他(プログラミング・Web制作) FORTRAN77の配列(除算) 2 2023/02/01 14:34
- Excel(エクセル) Countifよりも早く重複数をカウントする方法ありますか? 18 2022/07/04 13:39
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- IT・エンジニアリング 大規模言語モデルは今後どのように進化していくでしょうか? 1 2023/07/20 19:17
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- Visual Basic(VBA) vbaマクロについて 次のようなマクロを組みたいです。 自分は初心者なので全くわかりません。 詳しく 8 2023/05/18 18:38
- UNIX・Linux サーバー間のデータコピー(データ形式とデーターフォーマットの変換あり。一定間隔で処理) 2 2023/08/22 22:15
- その他(Microsoft Office) SUMIFとCOUNTIFの違いについて 4 2022/09/29 14:13
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
VBAで関数をつくる
-
0xf0=256?
-
matlab計算での進捗状況を知りたい
-
Perlで時間の計算
-
PHPで四則演算以外の微分、積分...
-
傾いた四角形内の範囲の条件式
-
文章中の数値を自動で足すサー...
-
変化させるセルが変化しない
-
C# 計算処理中に実行中ウィン...
-
MATLABの利点と欠点
-
バッチファイルでウインドウを...
-
ExcelのVBAで複素数は扱えない...
-
VBでReplace
-
VBAでの勤務時間計算
-
Perlでのルートの計算
-
VBAプログラミングです 現在、...
-
骨折リスク評価のFRAXについて...
-
スレッド処理からダイアログを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
mod でうまく
-
めちゃきれい
-
VBAの再計算が反映されない件に...
-
排他的論理和 BCC(水平パリテ...
-
バッチファイルでウインドウを...
-
モジュラス103の計算とは何でし...
-
EXCELなどで「返す」という表現
-
変化させるセルが変化しない
-
60進数の四則計算
-
プログラムの質問
-
VBでReplace
-
数値計算の高速化 (cos, sin, exp)
-
C言語についてです。 再帰を使...
-
Javaを使った行列計算
-
C言語のプログラミングの問題で...
-
エクセルで特定のセルのみを任...
-
matlab計算での進捗状況を知りたい
-
CとFORTRANの計算速度はどちら...
-
matlabで計算終了
おすすめ情報