- PR -

FilePut関数に関する問題

1
投稿者投稿内容
麒麟
会議室デビュー日: 2004/05/11
投稿数: 10
投稿日時: 2005-01-13 21:13
いつも参考にさせて頂いております。

現在VB.NET2003で開発を行っているのですが、ファイルを出力する際に
構造体変数をFilePut関数を使用して出力しております。
その出力結果に記述子というものがついておりまして、問題になっております。
次に問題の処理内容を記述します。

public class FileOutPut
structure st
public aaa() as byte
public bbb as byte
public ccc as string
end structure
private mst as st

private sub OutPut_File()

    '構造体の設定は省略します。

FileOpen(FreeFile,"C:\OUTPUT.FILE",OpenMode.Binary,,,256)
'構造体を設定します
FilePut(FreeFile,mst)
FileClose(FreeFile)

End Sub

End Class

上記の処理により出力されるファイルには、記述子がついてしまうのが
問題になっております。
FilePut関数を使用する場合、Array型やString型であれば記述子を出さない方法
もあるのですが、この構造体を使用し記述子を出さないファイル出力方法はない
でしょうか。
また、他の方法もあるならば教えていただけないでしょうか。

甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-01-14 00:32
そもそもユーザー定義型の宣言や、文字列も配列も固定長にしておく必要があるでしょう。さもなければ、データ長もメモリレイアウトも不明な状態で、記述子も無くどうやって読み込むつもりです?

BinaryModeを指定した場合RecordLengthは無視されます。

もしかして固定長のバイナリレコードファイルでも作ろうとしています?だったらMSDNの「ファイルのランダム アクセス」の項を読んでください。
麒麟
会議室デビュー日: 2004/05/11
投稿数: 10
投稿日時: 2005-01-14 10:33
私の文章の書き方が悪く、何をしたいのか伝わりづらい中での
ご返答大変感謝いたします。

おっしゃる通り、確かに固定長のバイナリファイルを作成したいのです。

例の構造体内の配列にVBFixedArray属性を使用したところ
記述子が出なくなりました。

本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)