【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.21172

ファイルへ文字を挿入
投稿者---taka(2005/05/26 02:14:10)


画像ファイルのヘッダ部分に情報を追加したいのですが、
ファイルへ情報を書き込むときに上書きではなくて、
挿入するような方法はないでしょうか?



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ファイルへ文字を挿入 21173 Blue 2005/05/26 02:21:05
<子記事> Re:ファイルへ文字を挿入 21185 si 2005/05/28 02:01:32


No.21173

Re:ファイルへ文字を挿入
投稿者---Blue(2005/05/26 02:21:05)


私が知る限りではないと思われます。

一時バッファに挿入前のデータをとっておき、
挿入部を上書きしてからバッファのデータを追記することになると思います。

あまりサイズが大きければ、違う名前のファイル(一時ファイル)を作成し、
挿入部+ファイルのデータを保存し、
現在のファイルを消してから、一時ファイルの名前を変更する等しかないですかね。



この投稿にコメントする

削除パスワード

No.21174

Re:ファイルへ文字を挿入
投稿者---taka(2005/05/26 03:40:07)


><pre>私が知る限りではないと思われます。

ありがとうございます。
fseekを使って、ファイル先頭より前を指定して、そこに書き込む
というのはできないのでしょうか?自分の使っているコンパイラ
(Borland C++ Compiler 5.5)では、違うアドレスに行ってしまいます。
どの、コンパイラでもそうなってしまうのでしょうか?



この投稿にコメントする

削除パスワード

No.21175

Re:ファイルへ文字を挿入
投稿者---nop(2005/05/26 09:17:17)


>fseekを使って、ファイル先頭より前を指定して、そこに書き込む
>というのはできないのでしょうか?

ファイル先頭より前には書きようがありません。
先頭より前は、書き込みできる領域が何もないのですから。


通常は、現在のファイル内容をメモリに読み込み、
メモリ内でデータを挿入してから上書きするか、
一時ファイルに現在のデータを挿入したい箇所までコピーし、
挿入したいデータを追加した後、残りの元データを追加して、
元ファイルを削除し一時ファイルをリネームする、
などの方法により、挿入書き込みの様に見せることになります。


そもそも、ファイルの読み書きでは、
「挿入」と言うこと自体ができないのですから。

# メモリ内でも直接挿入できないのと一緒です。


この投稿にコメントする

削除パスワード

No.21176

Re:ファイルへ文字を挿入
投稿者---Ban(2005/05/26 09:18:58)


>fseekを使って、ファイル先頭より前を指定して、そこに書き込む
>というのはできないのでしょうか?

無理です。
Blue さんのおっしゃるような対応が一般的です。

> 自分の使っているコンパイラ
>(Borland C++ Compiler 5.5)では、違うアドレスに行ってしまいます。
>どの、コンパイラでもそうなってしまうのでしょうか?

規定はなさそうですが、普通に考えて不正処理なので、
エラーが返ってきそうですが....
少なくとも、期待されているように動くコンパイラはないと思います。


この投稿にコメントする

削除パスワード

No.21185

Re:ファイルへ文字を挿入
投稿者---si(2005/05/28 02:01:32)


>画像ファイルのヘッダ部分に情報を追加したいのですが、
>ファイルへ情報を書き込むときに上書きではなくて、
>挿入するような方法はないでしょうか?

普通にやるとすれば、画像ファイルのヘッダー部分を読み込み解析、
必要な変更、追加を行った上で、画像データをそれに追加し、ファイル名を変えてセーブする。

ではないか?と思う


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧