プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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 なります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/04/05 13:43

そのときに回答した者です



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 があったほうがいいかもしれません。
    • good
    • 1
この回答へのお礼

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

お礼日時:2007/04/05 13:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています