テキストファイル出力で、Double型の1を 1.0 と出力するには?

解決


ことえり  2007-05-10 21:22:15  No: 98725

下記内容の実現方法をご存じの方にお知恵を借りられれば幸いです。

◆質問内容
Double型の変数に 1 が入っています。
それを「数値」としてファイル出力するときに、
小数点第一位までを含めて「1.0」と出力させたいのですが、どうすれば良いでしょうか?

 

◆参考までに私が試したコード
    Dim Ff As Integer
    Dim DX as Double
    Dim AX as Double

    DX = 1
    AX = 1.5

    Ff = FreeFile
    Open "c:\test.txt" For Output As Ff

        Write #Ff, (Format(DX, "#0.0"))      ←  ※1
        Write #Ff, val(Format(DX, "#0.0"))  ←  ※2
        Write #Ff, AX                       ←  ※3

    Close Ff

※1  これだと  "1.0"  のように文字列として書きこまれてしまいます。NGです。
※2  これだと  1      のように小数点第一位の0が書き込まれません。NGです。
※3  これは    1.5    と意図通りに書き込めます。


ことえり  2007-05-10 21:33:42  No: 98726

記載に抜けがありました。すいません。

「複数のDouble型をスペースなしのカンマ区切りで出力」という条件を忘れておりました。

print #Ff, (Format(DX, "#0.0")),",",(Format(AX, "#0.0"))  だと
1.0           ,             1.5
のように、異様に多いスペースが付加されて困っております。


魔界の仮面弁士  2007-05-10 21:33:50  No: 98727

書式を整える必要がある場合は、Write # ステートメントではなく、
Print # ステートメントを使うようにしましょう。


魔界の仮面弁士  2007-05-10 21:40:51  No: 98728

> print #Ff, (Format(DX, "#0.0")),",",(Format(AX, "#0.0"))  だと

カンマ区切りではなく、スペース区切り、
  Print #Ff, Format(DX, "#0.0") "," Format(AX, "#0.0")
またはセミコロン区切りを使うと、連続して出力されます。
  Print #Ff, Format(DX, "#0.0");",";Format(AX, "#0.0")
あるいは「& 演算子」で、行全体を長い文字列として連結するのも手かと。
  Print #Ff, Format(DX, "#0.0") & "," & Format(AX, "#0.0")


ことえり  2007-05-10 21:48:09  No: 98729

>魔界の仮面弁士さま

記載不備により二回も投稿させてしまってすいません。

いただいた情報でばっちり解決しました!
しかも色々な考え方を教えていただきとても参考になりました。

それにしてもVB情報を検索していると魔界の仮面弁士さまのお名前を色んな所で目にします。
これからも日本のVB力底上げにご尽力されるのを影ながら応援させていただきます。

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加