プログラムは、ド素人ですが急用です。
以下のようなCSVファイルがあります。
ido,keido,point
134.603057155416,34.1005169871047,1.07
134.603270155368,34.1005169871253,0.9
134.603499155317,34.1005129871483,0.76
134.603713155269,34.100512987169,0.54
134.604354155125,34.1005059872324,0.19
134.604567155077,34.100505987253,0.39
134.604796155026,34.100501987276,0.44
このようなものが100000個続く。
_________________________
データ数が100000個があります。
これらから、例えば、0以上0.5未満でido,keido,pointを
抜き出して、新たなCSVファイルを形成したいのです。
上の中なら、
134.604354155125,34.1005059872324,0.19
134.604567155077,34.100505987253,0.39
134.604796155026,34.100501987276,0.44
だけが抽出されたものです。
イメージとしては、(ファイル名は適当です。)
OPEN (5,FILE='motod.csv', status='old')
OPEN (5,FILE='newd.csv')
do 10 i=1,100000
READ(5,*) ido,keido,atai
IF(atai.GE.0.00).and.IF(atai.LT.0.50)then
WRITE(5,*)ido,keido,atai
10 continue
stop
END
になりますが、配列などが必要な気がします。
新たにお示しいただくか、継ぎ足したプログラムをお示しください。
また、今後のために参考になりそうなサイトもご紹介いただけると
幸いです。
空白がおかしいところがあろうかと思いますが、
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
書かれているプログラムに対して気が付いたことをあげておきます。
型宣言を最初にしておくべきでしょう。
宣言文無しでは、iやkは整数型とみなされます。
real*8 ido,keido,atai
装置番号に5の使用は避けた方がよいと思います。
一般に標準入力として使用されています。
標準出力として使われる6も同様の理由で避けた方がよいです。
また、入力と出力の装置番号は一緒にしない方がよいと思います。
Fortran77の固定形式を使うのであれば、10から99までの数字を使って下さい。
OPEN (10,FILE='motod.csv', status='old')
OPEN (20,FILE='newd.csv')
...
READ(10,*) ido,keido,atai
...
WRITE(20,*)ido,keido,atai
読み込むcsvファイルの1行目に
ido,keido,point
という情報があれば、これは読み込む必要はないのでdo loopに入る前に空読みします。
read(10,*)
do 10 i=1,100000
if文でandを使うのであれば、
IF(atai.GE.0.00 .and. atai.LT.0.50)then
です。
出力にコンマ区切りが必要であれば、
WRITE(20,*)ido,',',keido,',',atai
とします。フォーマット文を使っても同様のことはできます。
stopの前に全角スペースが入っています。
コンパイラにもよりますが、一般にコメント文以外で全角文字を使うとコンパイルできなくなります。
特に配列は必要ありません。
質問とは直接関係ありませんが、コメント
うまく行かない場合はエラーメッセージを読みながら試行錯誤してください。
短いプログラムでは、コンパイルエラーをしっかり読めば簡単にデバグできます。
また、プログラムを勉強するのであれば、ネットも利用するのも1つの手段だとは思いますが、例題がたくさん載っている良書を参考にするのも良いと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- PHP 値の取り出し方について教えて下さい。 1 2023/03/31 13:30
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでcsvファイルもシートもあ...
-
ダブルコーテーション付きでCSV...
-
【ExcelVBA】300万件越えCSVか...
-
CSVで余計な空行が入る
-
VBScript等で、CSV内の各文字列...
-
IPアドレスのゼロパディング
-
StringGridの中身をCSV形式で保...
-
rubyを用いたCSVファイルの分割...
-
バッチファイルでcsvファイルに...
-
パイソン文法で ファイルオープ...
-
LibreOffice Calcのマクロで、...
-
pythonで日本語csvからデータを...
-
PowerShellからGhostscriptを動...
-
RubyでCSVファイルの1行目を削...
-
バッチ処理 特定の文字以降を...
-
Access VBA エラー2448について
-
Rubyでバイナリファイルを編集...
-
キーが重複しているデータの統...
-
Fortran:列数の分からないデー...
-
問題をランダムに出すページの作成
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ExcelVBA】300万件越えCSVか...
-
ダブルコーテーション付きでCSV...
-
Excelマクロ 空白セルを無視し...
-
VBAでcsvファイルもシートもあ...
-
VBAで複数のCSVからレコードセ...
-
ファイル名を変数で書きこむfwr...
-
CSVで余計な空行が入る
-
CSVデータの文字列置換
-
EXCEL→CSV保存時のダブルクォー...
-
VB.netでShellExecuteがしたい
-
エクセルの任意のシートをcs...
-
fortranでデータの抜き出しをし...
-
VBA csvファイルのデータを...
-
pythonでリストをCSVに出力する...
-
FileListBoxで出すものを絞り込...
-
複数のファイルをまたぐエクセ...
-
バッチファイルでcsvファイルに...
-
StringGridの中身をCSV形式で保...
-
vbaマクロについて 次のような...
-
rubyを用いたCSVファイルの分割...
おすすめ情報