[リストへもどる]
一括表示

投稿時間:2002/12/11(Wed) 18:56
投稿者名:みるく
Eメール:
URL :
タイトル:
バイナリファイルについて
はじめまして、まだプログラムを始めて間もないもので質問させていただきます。
私は、現在VB6でプログラムをしています。
配列に格納してある、single型のデータをバイナリファイルに保存しているのですが、
元から存在しているファイルの最後にさらにデータを追加したいのですがその方法がわかりません。
どなたか、ご意見いただけないでしょうか。

ちなみに、配列の値は次々と変化し何度もデータを追加したいのですが…。

投稿時間:2002/12/12(Thu) 00:58
投稿者名:A221
Eメール:
URL :
タイトル:
Re: バイナリファイルについて
> 元から存在しているファイルの最後にさらにデータを追加したいのですがその方法がわかりません。

OpenステートメントのAppendで実現できます。こんな感じで

Dim Fnum    As Long
Dim DataStr As String

Fnum=FreeFile
DataStr="Test"

Open "c:\Test.Txt" For Append As #Fnun

Print #Fnum,DataStr

Close #Fnum

投稿時間:2002/12/12(Thu) 11:07
投稿者名:Lantern
Eメール:
URL :
タイトル:
Re: バイナリファイルについて
バイナリでファイルを開きLOF関数でファイル
のバイト長を取得します。
ファイルの末尾+1にSeek関数で移動し書き
込むことで追加の書き込みになります。

Open strFile$ For Binary As #ff%
    Seek #ff%, LOF(ff%) + 1&
    Put #ff%, , sngData!()
Close ff%

投稿時間:2002/12/12(Thu) 12:15
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^2: バイナリファイルについて
> ファイルの末尾+1にSeek関数で移動し書き
> 込むことで追加の書き込みになります。
Put#ステートメントの引数に、バイト位置を指定することも出来ますね。

>     Seek #ff%, LOF(ff%) + 1&
細かい事ですが、これは「Seek関数」ではなく「Seekステートメント」です。

投稿時間:2002/12/12(Thu) 12:22
投稿者名:Lantern
Eメール:
URL :
タイトル:
Re^3: バイナリファイルについて
> >     Seek #ff%, LOF(ff%) + 1&
> 細かい事ですが、これは「Seek関数」ではなく「Seekステートメント」です。
そうですね^^;
Seek関数は現在の位置を返す関数です
Seekステートは指定位置へシークするステートです

投稿時間:2002/12/12(Thu) 13:10
投稿者名:みるく
Eメール:
URL :
タイトル:
Re^4: バイナリファイルについて
ありがとうございました。
おかげさまでうまくいきました。
また、わからないことがあったら質問させていただきます。