- PR -

ファイルへ部分的な上書き

投稿者投稿内容
ほむら
ぬし
会議室デビュー日: 2003/02/28
投稿数: 583
お住まい・勤務地: 東京都
投稿日時: 2003-12-10 15:38
ども、ほむらです。
引用:

聞くところによるとC言語では可能らしいんですよ。
Cはまったく分からないんで試していませんが。


それって単に自分でディスクに直接書き込んでいるんじゃないのですか?(デフラグの応用)
実装したとしてディスクフラグメント化がすさまじいものになってしまうと思うのですが。。。

引用:

使い方はRandomAccessFileと同じような感じで、
裏ではtempファイルを作成してファイルの編集を行なうような。。。
甘い考えなのでしょうか?


Tempファイルを編集したら意味無いと思います。
基本はTempファイルに書き込み
正規ファイルのリネーム
Tempファイルのリネーム
正規ファイルの削除
だと思うのですが?

#ちなみに、そのファイルってサイズはどのくらい?
#オンメモリでは処理不可能?
kinta
会議室デビュー日: 2003/07/07
投稿数: 3
投稿日時: 2003-12-10 16:04
引用:

Tempファイルを編集したら意味無いと思います。
基本はTempファイルに書き込み
正規ファイルのリネーム
Tempファイルのリネーム
正規ファイルの削除
だと思うのですが?


おっしゃる意味を省略して書いたつもりでした。
すいません。
引用:

#ちなみに、そのファイルってサイズはどのくらい?
#オンメモリでは処理不可能?


指定は無いんですが要求としてです。
運用でそのあたりが回避できるならそれに越したことは
ないとは思いますが。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2003-12-10 16:11
中身を読んで処理するのが嫌なら、やはり固定長にするなどファイルフォーマットの
変更が一番良い気がしますけれどねえ。
既存プログラムの改修もしくは作り直しですか?

あと、DBを使うなら、(これは製品ですけれど)PointBaseというJavaプログラムに
埋め込んで使うことができるPure JavaのRDBがあります。評価版は無償で使えます。
http://www.pointbase.com/

まあ、私なら固定長にするかなあ、、、
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2003-12-10 16:19
引用:

聞くところによるとC言語では可能らしいんですよ。


別に、Cだから可能とかいうモノじゃないと思いますが・・・

以前見たチュートリアルに、丁度いいサンプルがあったので提示しておきます。
(当方、CもJavaも英語も中途半端なので、未だに理解しておりませんが)
http://www.catch22.org.uk/tuts/bigmem02.asp
ほむら
ぬし
会議室デビュー日: 2003/02/28
投稿数: 583
お住まい・勤務地: 東京都
投稿日時: 2003-12-10 16:47
ども、ほむらです。
引用:

指定は無いんですが要求としてです。
運用でそのあたりが回避できるならそれに越したことは
ないとは思いますが。


多重アクセスや致命的エラーの場合など
どんな障害あるともわからないので、直接上書きするという動作をするアプリは
少ないように思います
#ちなみに、最近のマシンなら50MB/sくらいは書き込めます。

上書きするというのなら
僕としてもやはり固定長にしてしまうのが一番安全で手軽だと思います。
あとは自前のバッファを準備するなんて技もありますけど、これだと
結局はファイル全体を書くことになりますしねー。

#言ってることが支離滅裂っぽかったので修正^^;;;;;


[ メッセージ編集済み 編集者: ほむら 編集日時 2003-12-10 16:50 ]

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