バイナリファイルの書き換え

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
たまひよ

バイナリファイルの書き換え

#1

投稿記事 by たまひよ » 17年前

はじめまして。
Cを初めて半年程の超初心者です。
使用しているOSはPC-DOS(Ver7.0)です。
コンパイラはVZエディタです。
(古すぎてご存じの方はいらっしゃらないかも)

バイナリファイルのデータを書き換えて保存したいのですが、
上手くいきません。
今あるデータを部分的に書き換えて保存する方法を教えてください。

今やっているのはBMPのデータから必要な部分を抜き出し・変更・付け足し等してから、
新規ファイルに書く事です。
書き出す順序が違うので、ファイルの好きな場所に書き込みしたいのですが、
fopenで"a"にすると追記"w"にするとファイルを消してしまうので困っています。
データの変更や読み取りは出来ています。

※一度全てのデータをどこかに保存するにはデータ容量が大きい場合があるので
 出来ればファイルに書き出した方がいいと思うのですが。

toyo

Re:バイナリファイルの書き換え

#2

投稿記事 by toyo » 17年前

ファイルサイズが同じで一部の変更だけなら
"rb+"でオープンしてfseek( )でファイルポインタを移動すればいいでしょう
挿入や削除の場合はランダムアクセスは無理な気がします

たまひよ

Re:バイナリファイルの書き換え

#3

投稿記事 by たまひよ » 17年前

ご回答ありがとうございます。
"rb+"でopenで開くとfseekで移動し書き込みが出来るんですか!

すみません全く知らずに一生懸命"ab"で開いてfseekさせて書き込みを
行ってました(勿論ちゃんと書けなかったです)

今試した処ちゃんと思った部分が書き換えられていました。
とても簡単な事だったんですね。

本当にありがとうございました。
もっと高度な質問が出来るように頑張って勉強します。

やそ

Re:バイナリファイルの書き換え

#4

投稿記事 by やそ » 17年前

VZエディタはあくまでエディタです。
Cのコンパイル機能なんて無かったのでは?
(VZエディタ経験あります^^)
MS-DOS3.3や5.0の頃に
VZやらFD(ファイラー)やらを駆使してZ80アセンブラやらCやらBASICやらで遊んでましたから^^

懐かしさのあまりツッコミを入れてみました^^;

たまひよ

?!

#5

投稿記事 by たまひよ » 17年前

やそ様
突っ込みありがとうございます(?(^^:))
あれ?えーとじゃぁ何でコンパイルしてるんでしょう・・・。
(って言われても困りますよね・・・)

c:>cl /W3 /AH /F 1500 ○○.c
って書いてコンパイルしてるのは一体・・・・(--;
初心者過ぎて全く理解してないです・・・すみません。
PC-Dosにコンパイラ付いてるでしょうかね?


でもVZエディタご存知の方がいらっしゃるとは嬉しいです。

YuO

Re:?!

#6

投稿記事 by YuO » 17年前

その,clっていうのがコンパイラです。
おそらく,Microsoft C Compilerでしょう。
コンパイルするときに名前とバージョンが一番最初の行に表示されるはずです。

現行のVisual Studioでもclという名前やコンパイラのバージョンはMSC時代から受け継いでいます。
# 最新のVisual Studio 2008のclのバージョンは15。

やそ

Re:?!

#7

投稿記事 by やそ » 17年前

DOSのパッケージの中にあるCコンパイラですね。Yuoさんの言われているコンパイラで間違いないと思います。

コンパイルのパラメータやら何やらを毎回入力するのが面倒でBATファイル作りまくったです^^;
AUTOEXEC.BATやCONFIG.SYSの効率化&高機能化に燃えてました(笑)

VZはWin環境になってからはWZEditorになったかな。
PC-9801全盛期にVZを学校で、趣味ではMIFESを良く利用してました。
他にはワープロソフトで一太郎V3。
当時のFD(ファイラ)は非常に使いやすくて軽くて便利でした。
メモリ常駐たしか0Kですよ?!今ではありえません(笑)
(まあ、からくりはありますが^^;)

名前は出せませんが、当時はいろんなソフト(ゲーム)の解析をしたものです^^

たまひよ

(^^;

#8

投稿記事 by たまひよ » 17年前

YuO様

仰る通りMicrosoft C Optizing Compiler Version 6.0と書いてありました。
今はVer15なんですね。

勉強になりました。


やそ様
Visual Studio2005もあるのですが、Visualな所より基本を学ぶ為に使っています。
とてもシンプルで分かりやすいです(^^;

他に何もソフトを乗せてないので暴走しても電源OFFで済みますし(--;
ちょっと書いてすぐコンパイル出来るところがいいです。

バグ

Re:バイナリファイルの書き換え

#9

投稿記事 by バグ » 17年前

最近(といっても1年程前)、DOSのソフトの改造の仕事があって、先輩に教えてもらいながら、VZやFD、FMを使いながら作業したのを思い出しました(苦笑)
個人的にはディレクトリの管理が楽なので、FDよりはFM派ですね…って、横やり失礼しました(^_^;)

たまひよ

\(^0^)/嬉しいです!

#10

投稿記事 by たまひよ » 17年前

バグ様
DOSソフトを改造ですか。
Windows全盛期の今でもDosソフトの改造をされたりするんですね。
(うちもそうなんですが(^^;)

FDやFMはさわったこと無いですが、VZは使いやすいです。
ただ、エラーメッセージやワーニングが全て英語なので泣きながら翻訳してます(^^;
(だいぶ慣れてきました)←エラーが多いからかもしれません(--;

誰も知らなかったらどうしようなんて思ってたんで、コメントして貰えて嬉しいです。

閉鎖

“C言語何でも質問掲示板” へ戻る