• ベストアンサー

フォートランで出力をタブ区切りテキストの形式でしたいのですが

フォートラン95で、タブ区切りテキストとしてファイルに出力したいのですが、そのやり方がわかりません。 以前にも同じような質問があり、それに対する回答がちゃんとありましたが、何分初心者なもので、その回答が良く分かりません。 integer*2 tabc / 2313 /  2313は16進の0909に相当(TAB二文字分) write (*,'(i,A1,i,A1,i)') i1,tabc,i2,tabc,i3 是非教えてください! 出来れば、一般的な形なものでお願いします! 6列出力したいので!

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

  • ベストアンサー
  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.2

C JIS FORTRAN (古い)ですが、基本は、同じと思いますので、実数型なら C 例;   の場合 左端の Cは、コメントの意味 A=10.11 B=1.22 C=123.01 D=555.55 E=666.66 F=0.77 C C WRITE(6,10) の 6 は、出力装置番号 テキスト形式番号を C 調べて 変更すること。 C 同様に 10 は、行番号 WRITE(6,10)A,B,C,D,E,F 10 FORMAT(1H,6F7.2) C F7.2 とは、実数表示で、小数点を含め 7文字を出力します。 C 変数に7文字以下の数字が、入っていれば 切り捨てられずに C 出力されます。 また、1H は、余白部分を指定します。 C プレビュー画面での余白を指定します。 C 結果は、(注意Δは、空白です。) C ΔΔΔ10.11ΔΔΔ1.22Δ123.01Δ555.55Δ666.66ΔΔΔ0.77 C または、X を入れると 空白が、挿入されます。 C 2X とか 3X とかにすると 空白が、2個、3個になります。 WRITE(6,10)A,B,C,D,E,F 10 FORMAT(1H,X,F7.2,X,F7.2,X,F7.2,X,F7.2,X,F7.2X,F7.2) C とすると C ΔΔΔΔ10.11ΔΔΔΔ1.22ΔΔ123.01ΔΔ555.55ΔΔ666.66ΔΔΔΔ0.77 なります。

y-auio
質問者

お礼

ありがとうございます! チャレンジしてみます!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

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

そのときに回答した者です http://oshiete1.goo.ne.jp/qa2497203.html 一応、そのときはうまくいったようなので、もう少し詳しく説明してみます。 integer*2 tabc / 2313 /   ここで、2313は16進の0909HでTAB二文字分に相当する数値です。 実際には、先頭1バイトしか使わないので、2304(0900H相当)でも多分問題ないのですが、保険のために0909Hとしてあります。 write (*,'(i,A1,i,A1,i)') i1,tabc,i2,tabc,i3 ここでやっているのは、まず、変数i1をI変換で出力、次にtab相当の数値をA1変換で出力しています、ここでA1変換は、実際には定義されたビット列を1バイト分そのまま出力するだけというのを利用して、タブ1バイトだけを出力しています。今、i1=11、i2=22、i3=33だったとすると、変換されての出力結果は 11(tab)22(tab)33 となり、タブ区切りの出力が実現できるはずです(実際出来たようです)。 6列出力したいなら、出力する文字列とtabcを交互に6回出力すればいいはずです。 前回忘れていたのですが、改行制御文字はあったほうがいいですね。FORMATの先頭に" "や1H があったほうがいいかもしれません。

y-auio
質問者

お礼

ちょっと私には難しいかもしれませんが トライしてみます! ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • fortranでタブ区切り

    フォートランで出力する際,タブ区切りのテキスト形式は可能でしょうか?

  • フォートランで出力をタブ区切りテキストの形式でしたいのですがver.2

    Nayuta_Xさん 例えばこんな風にプログラムを作ってみたんですが、    OPEN(6,FILE='C:\TRY.TXT')    A=10.11    B=1.22    C=123.01    D=555.55    E=666.66    F=0.77    WRITE(*,*)A,B,C,D,E,F    WRITE(6,10)A,B,C,D,E,F  10 FORMAT(1H,6F7.2) ←*    CLOSE(6)    END *の部分で文法エラーと出てきてしまいます。 Hが引っかかっているのかもしれません。 どうすればいいですか? ultraCSさん 例えばこんな風にプログラムを作ってみました。    PROGRAM try    integer*2 tabc/2313/ ←☆      i1=11     i2=22     i3=33    write (*,'(i,A1,i,A1,i)') i1,tabc,i2,tabc,i3    END ☆の行でエラーが以下のように出てしまいます。 F95エラー : main.f95(12) : 文法エラー F95エラー : main.f95(12) : 無効な文字です - 8進数 201 F95エラー : main.f95(12) : 無効な文字('@')が指定されました エラー: main.f95, line 12: 無効な文字です - 8進数 201 F95エラー : main.f95(12) : 無効な文字('@')が指定されました 警告: main.f95, line 18: シンボルTABCは値を設定されないまま参照されましたdetected at END@<end-of-statement> どうすればいいでしょうか? 大変申し訳ないのですが、プログラムのサンプルみたいなものも教えて頂けるとありがたいです。 宜しくお願いします。

  • エクセルのVBAでタブ区切りのテキスを出力したい。

    エクセルのVBAでテキスト出力をしたいのですが、 ・タブ区切りで保存 ・A列の最終行×1行目の最終列の範囲指定が対象 ・範囲内の空欄もタブ区切りにする(最終列には必ず数値あり) ・出力テキストはシートと同じフォルダ内へ格納 ・テキストファイル名はシート名 という感じにしたいのです。 いろいろ検索はしているのですが、これといった回答やサンプルは 見つかっておりません(><) ちなみに、私は、自動記録をしたものを改良して少し使えるレベルです。 よろしくお願いします。

  • Dosブロンプトでtabを出力したい

    batファイルからテキストファイルにtab区切りのテキストを出力したいのですが、tabはどのように出力すればいいのでしょうか?普通に¥tとやっても、そのまま出てきてしまうのですが・・・ よろしくお願いします。

  • エクセルのデータをTAB区切りテキストに出力

    エクセルのデータをTAB区切りテキストに出力 1.エクセルのデータをTAB区切りテキストに出力して 2.そのテキストを入力としてrubyでデータ加工 という作業があります。現在1を手動で行っておりますが、ファイルが多いためこの操作をファイル名とシート名を指定してrubyから操作できればと考えております。 できれば追加でライブラリをインストールすることなく実現できればありがたいのですが、簡単な方法がございましたらご教示ください。 環境は、Win XP、Office 2003、ruby 1.9.1です。 最終的にはエクセルファイルから直接データを取得できるようにしたいのですが、当面は上記の方法で凌ぎたいと考えております。

    • ベストアンサー
    • Ruby
  • 0が消える:WRITEを使ってTEXT出力

    ワークシートの一部をカンマ区切りのテキストとして出力しようとしています。ワークシートには文字列と数値が混在しています。文字列は"文字列"としてする必要があります。数値はそのまま出力します。 ワークシート上で文字列あらかじめ""を付加しておくと、CSV保存の際に、""文字列""となるので、CSV形式は断念しました。 そこでVBAでWRITEを使い、 Dim i, j As Integer i = 2 j = 1 For i = 2 To 5 Write #1, Worksheets("diff").Cells(i, j).Value, Worksheets("diff").Cells(i, j + 1).Value, Worksheets("diff").Cells(i, j + 2).Value, Next i Close #1 といった感じで挑戦しています。ところが、セルの値が1より小さい数値、つまり0から始まる場合には、始めの0が消えてしまいます。  セルの値 0.****  出力された値 .**** 「それが仕様だよ」と言う場合には、何か良い方法を教えていただけると幸いです。

  • excelからtab区切りテキストへの変換で…。

    過去の質問を検索しましたが、無い様ですので質問させてください。 excelでためたデータベースをtab区切りテキストに変換したのですが、 できあがったtab区切りテキストをテキストエディタで開きますと、 (" ")が勝手にデータの両端についてしまうのです。 例えば(18,000)という数字データがあったとします、 それをタブ区切りテキストに書き出すと、("18,000")という風になってしまいます。 そこで、とりあえずすべてのデータの書式を文字列にしてやりますと、(18000)となってしまいますから、 文字列として(,)を追加したのですが、 やっぱりtab区切りテキストに変換すると(" ")がついてきます。 ただし、普通の文字のフィールドは大丈夫です。 (" ")を消す方法はないでしょうか? 少々わかりにくい説明ですが、何卒よろしくお願いします。 あと、追加で質問なのですが、桁数の多い数字が勝手に16進数?に変わってしまいます。 こちらの方も原因が分かりませんので教えていただければ幸いです。 ちなみに検証してみたexcelのバージョンは Win版 Excel2000 Mac版 Excel98 です。 設定は特にいじっていませんので、初期設定だと思います。 よろしくお願いします。

  • VBAでタブ区切りテキストの保存に関して

    VBAでタブ区切りテキストの保存のプログラムを書くためには Application.DisplayAlerts = False Sheets("sheet01").Copy ActiveWorkbook.SaveAs Filename:="D:\test.txt", FileFormat:=xlText ActiveWindow.Close Application.DisplayAlerts = True という記述が一般的に使われます。 いま、あるプログラムでexcelシート上に title subtitle 001  002  003 333  444  555 666  777  888 ような内容が書き込まれたものをタブ区切りで出力したいのですが、 上記の方法で出力すると、 titleやsubtitleと書かれた行の右側にも空白のタブ区切りが一緒に保存されてしまいます。 あるプログラムで読み込ませるためには、 この二つの行のタブ区切りをいちいち消す必要があり、毎回手作業でするのは面倒です。 VBAでこのようなタブ区切りの有無を行ごとに指定して保存するようなことは可能でしょうか?

  • ExcelでのTab区切りテキスト出力

    いつもお世話になります。 Excelで、Tab区切りテキスト形式で保存をする際、通常は、セルに「,(カンマ)」で区切られた文字列があると、「”(ダブルクォーテション)」でくくられると思うのですが、これを「,」があっても、「"」でくくられないようにする方法はあるのでしょうか? ご存知の方がいらっしゃいましたら、お知らせいただけますでしょうか、宜しくお願いします。

  • 区切り文字をTABにしたい

    CGI-Perl初心者です。 エントリデータを、カンマ区切りテキストデータで保存するようにしていますが、(入門書のファイル操作を参照しながら何とか作れた代物です)後で大きな問題が発生しました。このデータには金額を入れる項目があって、例えば10,000円とカンマを入れると当たり前ですが、区切り文字と判断して10と000円を分けてしまうのです。そこでTAB区切りテキストデータに変更したいのですが、 $data=join(",",変数,変数,変数,変数); としている","の部分をタブにするにはどうしたら良いのでしょうか?

    • ベストアンサー
    • Perl