• ベストアンサー

fortranでのcsvファイルを出力する方法

gotkat667の回答

回答No.3

エクセル上でコンマ区切りにできます。 エクセル上のファイルメニュー[データ]→[区切り位置]です。 データはA列を選んでください。

boson
質問者

補足

ご回答ありがとうございました。 仰る通りなのですが、処理しなくてはならないファイル数が多いので、ご指摘の手順をマクロ化して自動化しないと実用には供さない思います。 (指定されたディレクトリに生成された多数のFortran出力ファイルを自動的に読み込んではCSVに書き換えてくれるようなマクロ?) 現状ではVisualBasicで上記マクロに相当するプログラムを作り、処理しております。 このため、Fortranには出力段階でCSVにできるような機能がもともと備わっているのかどうかを伺いたかった次第です。 あと、エクセルの列数は最大256列ではなかったでしょうか? 列数が256を超えてしまうことがありますので、シートに読み込んで作業を行うことは恐らく出来ないのではないでしょうか。

関連するQ&A

  • CSV出力で改行がうまくできない。

    VBAでテキストファイルにCSV出力をおこなっています。 方法は、 Print #FreeFile, FreeFileOutput; でおこなっています。FreeFileOutputは変数でカンマで区切られた複数の値が はいっています。最後はカンマはありません。つまり、 "a,b,c,d" といった値がFreeFileOutputにはいっています。 これをループでまわして、複数行を出力したいとおもっています。 無事に出力はできるのですが、テキストファイルを見ると各行の終わりで改行 されていません。print関数を使い";"をつけると自動で改行が入力される みたいですがされません。どうしてでしょうか?

  • fortranで標準出力をテキストファイルとウィンドウに同時に出力する

    fortranで標準出力をテキストファイルとウィンドウに同時に出力するにはどうしたらよいのでしょうか。 初心者ですいません。 absoftのPro Fortranを使っていますが、Visual Fortranも使える環境にあります。 どうぞ宜しくお願いします。

  • 固定長からCSVへの出力時にスペースを詰めたい。

    固定長ファイルで各項目左詰めでデータ入力されておりスペースが入っております(全角、半角)。このファイルをcsv出力する際に各項目後ろの空白部分を詰めて、csv出力したいのですが可能でしょうか?

  • ExcelのCSVファイル出力について

    Excelが出力したCSVファイルを扱うプログラムに関する質問です。 Windwosの[コントロールパネル]⇒[地域と言語のオプション]で、 小数点の記号を「.(ピリオド)」から「,(カンマ)」に変更しました。 するとExcelからCSVファイルを出力したときの各データの区切り文字が 「,(カンマ)」から「;(セミコロン)」に変わるようなのですが、 これに対応できるプログラムを作りたいと考えています。 CSVファイルの区切り文字は、Windowsのロケール情報として プログラム上から取得可能なのでしょうか?

  • fortranでの出力書式設定

    ご質問させていただきます。 たとえばfortranで a=1d0,b=2d0 write(*,*)a,b と書くと数字の左側に必ず空白文字が出力させるのですが、 この空白文字をなくすことはできるのでしょうか?

  • ASPでCSVファイルのダウンロード

    ASPでオラクル上のレコードを書き出したCSVファイルをダウンロードするページを作成しました。 あるフィールドに半角カンマが入ったレコードが存在したため、その行だけ列がずれてしまいました。 そのCSVファイルはAccessで作成したプログラムで取り込みます。インポート定義で、半角カンマをフィールドの区切りに設定してあります。 Accessでの読み込みエラーを回避するために、フィールド中の半角カンマを全角カンマに置換してCSVファイルを作成したいのです。 ASP上で、Replace関数を使用してみましたが、半角カンマが引数の区切りと認識されたり、シングルクオーテーションもコメントとして認識されたりしてうまくいきません。 Response.write Replace(rs("フィールド1"),",",",") & "," & rs("フィールド2") & vbNewLine ※rsはレコードセットです。 どなたか解決方法を知っていらっしゃる方、ご教授願います。

  • FORTRANについて

    今、大学の研究室でFORTRANの勉強をしています。そこで、院生から問題を出されました。それは、 テキストファイルから数字を読み込み、それらをFORTRANの中で計算し、その答えをまたテキストファイルに出力する、というプログラムです。 計算するところまではできたのですが、どうしてもテキストファイルに出力するプログラムがわかりません。 出力の仕方だけでも教えてください。教科書にもなく、図書館でも古い時代のものばかりで。しかも、僕は学校の関係でFORTRANを全く知りません。

  • CSVファイルへの書出し方法

    テキスト文章をCSVファイルに書き出したいのですが、書き出したファイルの各行の前後にダブルコーテイション(")が付いてしまいます。 これを取り除いて書き出すことはできないのでしょうか? プログラム例: Text="abc,100,あいうえお" Open File For Append As #1 Write #1, Text Close #1 Print文では、上手くいくのは確認しています。 Write文とPrint文の処理の違いと合わせて、教えてください。

  • エクセルのカンマ区切りのCSV出力

    エクセルのカンマ区切りのCSV出力について質問します。 CSVファイルとしてカンマ区切りで出力したいのですが、さらに各項目にダブルコーテーション(")をつけて出力したいのです。 例) 通常のCSV 01,02,03 やりたいCSV出力 "01","02","03" ご存知の方がいらっしゃいましたら回答お願いします。

  • Fortranの出力の改行について

    Fortran超初心者です。 test1.csvのファイルには、x,yの変数がずっと続いています。 test2.datのファイルには、a,bの変数がずっと続いています。 この2つのファイルの変数を元に、d,eの値を求め、それをtest3.csvというファイルに出力したいのです。 test1.csvとtest2.datの計算はできていたのですが、test3.csvの出力は最後の計算結果のみしか出力されていません。 多分毎回出力はしているのですが、計算を繰り返すと上書きされ消えてしまうという仕組みになっているのだと思います。 どうやったら上書きされずに、csvファイルの次の行に次のデータを入力できますか? 以下私が考えたFortran90のプログラムです。 open (10, file='test1.csv', status='old')  do   read (10, *, iostat=ios) x, y   open (11, file='test2.dat', status='old')   do    read (11, *, iostat=jos) a, b    d = x +a    e = y + b    if (jos .lt. 0) exit   enddo   open (12, file='test3.csv', status='replace')   write (12, *) x, y, a, b, d, e   close (12)   close (11)   if (ios .lt. 0) exit  enddo close (10) 本当に始めたばかりで、いまいち意味の分かっていない部分もあるのですが、問題点を指摘してくれたら助かります。 わかりにくいので、具体的に少し書くと、 test1.csvには 1,2 9,3 6,4 とデータが続くとします。 test2.datには 80,50 10,20 90,60 とデータが続くとします。 test3.datには 1,2,80,50,81,52 1,2,10,20,11,22 1,2,90,60,91,62 9,3,80,50,89,53 9,3,10,20,19,23 9,3,90,20,99,23 6,4,80,60,86,64 6,4,10,20,16,24 6,4,90,20,96,24 と出力されるようにしたいのです。 実際のデータや変数名も違いますが、プログラムの構造は同じです。 よろしくおねがいします。