掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ユーザによって登録されるデータの保存について (ID:3341)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
問題は2つですね。 1.安易に読まれないファイル形式 2.ユーザが、他アプリケーションなどでファイルに変更をかけたときの対処 1は、古典的な手法ですが、固定長フィールドのランダムアクセスファイルで、よろしいかと思います。 単純に、データ保存用のRecord型を用意して、あらかじめバイナリになるように設定しておき、そのままread/writeすればOKだと思います。 もし、名前の欄などで、固定バイトにしたくない場合は、インデックスとデータ本体を分けて書き込めばよいと思います。その場合、固定長と違ってn件目のデータを1回で取得できないので、1から順にインデックスを探していき、n件目のインデックスからデータ本体の位置を取得していきます。 効率を考えたら、インデックスだけ固定長にするか、インデックスとデータを別々にするのもよいかもしれません。 2は、結構難しい問題です。ユーザの変更はどこまで許されるか、が問題となります。 一番簡単なのは、CRCなりMD5なり、現在のデータの整合性を確認するためのキーをファイルの一部に書き込んでおき、読み込むときに整合性チェックを行うというものです。 この場合、「正常」「異常」の区別はできても、修復はできません。 修復も含めたい場合は、修復用データも持たねばなりません。 簡単なのは、ZIPなどで圧縮したデータをファイルに埋め込むことです。この部分が壊れたらおしまいですが、本体部分が壊れても圧縮部分が生きていれば、修復できます。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.