• ベストアンサー

VB6.0でのバイナリアクセス

VB6.0でバイナリアクセスでファイルをオープンした場合、 例えば、test.datというファイルに 111110000011111 と書き込まれていて、 この[00000]の部分を消去して、 1111111111 というファイルを作成するにはどうしたらよいでしょうか? ただ、これを同一ファイル上で行いたいのです。 ですので、新たにtest2.datを作るとか、 test2.datを作ったあとにリネームするということはしたくないのです。 宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

ファイルサイズを縮小する手段がないので無理だと思います。 やるとすれば、 test.datを読み込む。 test.datを削除。 test.datを新規作成して書き込む。 途中でエラーになると困るので >test2.datを作ったあとにリネームする のが普通ですが

関連するQ&A

  • バイナリ

    VB6.0を使っています。 全てのファイル(Word、エクセル、Exe、Txtなどなんでも)はバイナリファイルとして扱えるのですか? バイナリファイルとして読み込んで、別名で保存して、 また、元の形式に戻すにはどのようにしたらよいのでしょうか? バイナリモードでOpenして 1バイトずつ、 バイナリモードで書き込めばいいのでしょうか? また、読む場合は、 バイナリモードで開いて、 1文字ずつ 何モードで書き込めばいいのでしょう? バイナリでいいのですか? ファイルの形式などよくわかっていません。。。。

  • VB2005におけるバイナリファイルの入出力

    例えば「12345678」であれば「12 34 56 78」いうバイナリファイルが出力されるようにしたいのですが、 Using writer As New System.IO.BinaryWriter(New System.IO.FileStream("test.dat", IO.FileMode.OpenOrCreate)) writer.Write(&H1234S) writer.Close() End Using このプログラムの場合、出力される"test.dat"の内容は「34 12」であり、しかも4バイトを超えるとオーバーフローしてしまうため出力することができないというエラーが出ます。 ない知恵を絞って調べているのですが、ここで詰まってしまいました。 どうか、よろしくお願い致します。

  • VBでAccessの最適化

    VB6+Access2003でプログラムを作成しています。 Accessの最適化の方法について教えてください。 AccessのオプションにDBを閉じるときに最適化するというのがありますが そちらで最適化されるようにしておくほうがよいののでしょうか? VBで最適化するようにプログラミングしたほうがよいのでしょうか? (プログラム内で何度もAccessをOpen/Closeしています)

  • VB(VBA)で、バイナリデータを使ってテキストファイルを作成したいの

    VB(VBA)で、バイナリデータを使ってテキストファイルを作成したいのですが、 例えば、"A"が一文字のみのShift-JIS もしくはunicodeのテキストファイルを作るため、 (下記の確認はShift-jis で行っています。) Dim ByteData As Byte ByteData = AscW("A") Open "C:\A.txt" For Binary Access Write As #1 Put #1, 1, ByteData Close #1 としました。 できあがったファイルをバイナリエディタで確認すると、  41 となっています。 (Unicode は 41 00 2バイト文字でリトルエンディアンのため) この41は、"A" の文字コード(Shift-JIS)「65」の16進表記です。 この「41」という値を使ってバイナリモードでテキストファイルを作成したいのですが、 どのようにすればよいでしょうか? 上記 Put #1, 1, ByteData の部分を、 1.Put #1, 1, 41 としたところ、通常表示はできないファイルができあがったみたいです。 バイナリモードで 「29 00 20 20」でした。 文字コード00 に該当する文字がないためだと思います。 2.Put #1, 1, "41" としたところ、「41 」(バイナリモードで 「34 31 20 20」) (41の後ろは半角空白) で×でした。 3.Put #1, 1, CLng("&H" & 41) としたところ、通常表示はできないファイルができあがったみたいです。 バイナリモードで 「41 00 00 00」でした。 4.ByteData = CLng("&H" & 41) Put #1, 1, ByteData これでやっとできました。 この他にも方法があるのか?と思い、質問させていただきました。 ご指導よろしくお願いいたします。

  • VB2008 バイナリデータの書き込みで

    現在、VB2008でバイナリデータを書き込むプログラムを作成しているのですが、String型のデータをバイナリデータに書き込むと、なぜかそのバイナリデータの先頭に05が入ってしまいます。 コードは以下のように記述しています。 TextBox1.Text = "TEST" Dim Bin As New System.IO.BinaryWriter(New System.IO.FileStream(filename, IO.FileMode.Create)) ~~~省略~~~ Bin.Write(TextBox1.Text) ~~~省略~~~ Bin.Close() 書き込まれたバイナリデータは、 05 54 45 53 54 で、テキスト欄では、 .TEST と表示されます。 分かりにくい質問で申し訳ありませんが、回答よろしくお願いします。

  • バイナリエディタはどう使うの?

    先日配布するために作成した音声ファイルや画像ファイルを全て.datに書き換えました。 しかし計画性無く全て書き換えてしまったので一体どれがどのファイルか わからなくなってしまいました。 そこでバイナリエディタで開いてみたのですが、よくわかりません。 .wavファイルはバイナリエディタのヘッダを見たらwavと書いてあるのでわかるのですが、 何も書いて無いファイルもあります。 そこでちょっとバイナリについて勉強してみようかと思ったのですが そんなバイナリについて詳しく説明してあるサイトとか本とかありますでしょうか。 ヘッダファイルはこんな構造になっているとか。 よければ本やサイトのオススメを教えてください。 よろしくお願いします。

  • バイナリファイルの出力

    「test.dat」というファイルをブラウザから ダウロードさせるためにバイナリ出力をしたいのですが、 空ファイルばかりできて上手くいきません。 以下のようなコードなのですが、どこが悪いでしょうか? ご教授ください。お願いします。 症状:ブラウザからダウンロードすると、ファイル名は正しいが 空のファイルになっている 環境:perl 5.8.7 windows server2003 ----------------------------------------------------------- #!/usr/local/bin/perl print "Content-Disposition: attachment; filename=\"test.dat\"\n"; print "Content-Type: application/octet-stream\n\n"; open(IN, "test.dat"); binmode(IN); binmode(STDOUT); print while (<IN>); close(IN); -----------------------------------------------------------

    • ベストアンサー
    • Perl
  • VBで16進数をバイナリ変換しRS232通信

    VB CommunityでRS232C通信プログラムを作成しています。 OKWaveをみて、ポート接続などはできたのですが、 データ送信でつまづいてます。 16進数をバイナリ変換し送信したいのです。 その部分ですが、16進数で[11]をバイナリに変換して送信したい場合、 Dim command(0) As Byte command(0) = &H11 SerialPort1.Write(command, 0, 1) としても、16進数で[11]を送ったときの動作を行いません。。 VectorなどでのRS232通信テストツールでは反応あるのですが。。 初歩的ですみませんが、よろしくお願いします。

  • VB.Net2003でバイナリファイル作成

    すいません。VB.Net2003初心者です。 いろいろ調べましたが、よく解らないので教えていただけないでしょうか。 下表1のようなバイナリファイルを作成したいのですが、うまくいきません。 どのようにしたら作成できるのでしょうか、教えてください。 表1 [offset]: +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 0123456789ABCDEF ---------------------------------------------------------------------------- 00000000: 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000090: 00 00 35 35 33 30 30 30 35 00 00 00 00 00 00 00 ..5530005....... 000000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

  • VB2005を使ってバイナリファイルの中身をHEX変換してテキスト表示したい。

    VBは初心者ですが、以下のような事をVB2005を使って実現したいのですが、参考コーディングがありましたら教えて下さい。 ・バイナリファイルファイルの中身を可変の長さ(オープン時に変換の長さは決定している)をHEXに変換してテキスト表示したい。

専門家に質問してみよう