人に聞けない痔の悩み、これでスッキリ >>

Visual Basicで
指定したバイナリファイルに対し、ファイル名をつけて別のディレクトリに保存するというプログラムを作ろうと思っているのですが、
何か良いコンポーネント等はないですか?

環境
OS:Win2000
VB:ver 6.0

このQ&Aに関連する最新のQ&A

A 回答 (2件)

FileCopyステートメントじゃ駄目?

この回答への補足

その手がありましたね!
忘れてました。試してみます。

補足日時:2002/06/03 11:27
    • good
    • 0
この回答へのお礼

簡潔にできますね。
ありがとうございます。
ただ、同一パス、同一名の場合、エラーになります。
この回避を行えば、十分に使えます。

お礼日時:2002/06/03 11:32

特にコンポーネントではなく、


バイナリーモードでオープンし読み書きするだけでコピーできます。

ちょっとサンプルを書いてみました。(コードは間違ってるかもしれません。)

dim bb() as byte
i=0
Open "binary1.bin" For Binary Access Read As #1
len=LOF(1)
redim bb(len)
For i = 1 To len
Get #1, i, bb(i-1)
next i
Close #1

Open "binary2.bin" For Binary Access Write As #2
For i = 1 To len
Put #2, i , bb(i-1)
next i
Close #2

ちなみにファイルのバイト数はLOFで取得できます。
それで取得したバイト数からredimでbb()配列を再定義してます。

この回答への補足

ありがとうございます。
試してみます。

補足日時:2002/06/03 11:24
    • good
    • 0
この回答へのお礼

ありがとうございます。
少々、改良しましたが動きました。

お礼日時:2002/06/03 11:30

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVBAを使って、一部バイナリデータを読み書き

VBAを使って、一部バイナリデータを読み書きする方法
を教えてください。

あるファイルが1行目から30行目までが普通のASCII形式でデータが書き込まれており、
31行目以降はバイナリデータとなっています。
また、30行目にheader endと書かれています。

このデータを30行目までは文字列データとして抽出し、
31行目以降はバイナリデータとして抽出して、
少し内容を書き換えてから、最初と同様に
30行目までをASCII、31行目以降をバイナリデータとして出力したいのですが
どのようにすれば良いですか?



http://homepage2.nifty.com/kasayan/vba/binary.htm
http://hanatyan.sakura.ne.jp/vbhlp/Binary.htm

バイナリデータの読み込み方は上記のページに書かれてあるのですが
いずれも、ファイルをまるごとバイナリ形式として読み込むもので
一部だけバイナリとして読み込むことはできないようです。
どなたかどうすれば良いか教えてください。

Aベストアンサー

No.2 です。

> 読み込みファイルから、ヘッダ部位を配列a(30)に読み込んで、
> バイナリ部位をb(256)に読み込んだとします。
> どうやって、テキストデータとバイナリデータを合体させれば
> 良いですか?

すいません、『やりたいこと』を読み違えていました。
ヘッダ部位、バイナリ部位の両方とも同じファイルに出力
したいということですね。

以下の手順で行けると思います。
 1. 書込ファイルにテキストでヘッダを出力
 2. 書込ファイルをバイナリモードで OPEN
 3. 出力位置を末尾に移動 (SEEK を使います)
   http://homepage1.nifty.com/MADIA/vb/vb_bbs2/200501/200501_05010100.html
 4. バイナリ部位をファイルに出力

# ヘッダ部分をテキスト出力せずに、1文字づつASC関数で
# ASCIIコードに変換して全部バイナリ出力するという方法も
# 考えられます。


人気Q&Aランキング