個人情報 (名前、姓、生年月日など) を Records.dat という名前の .dat ファイルに保存するプログラムがあります。ファイルから 1 人の情報を削除し、それを「DELETED」に置き換えるか、情報を完全に削除する理想的な方法はどれですか?
1 に答える
1
あなたがデータベースを活用していない理由はわかりませんが (実際には問題ではないので大したことではありません)、論理的な削除をお勧めします (つまり、実際には削除しないでください)。フラット ファイルの場合、行の先頭に を付けることをお勧めします。これは、DELETED|
行を読み取って一覧表示したり、検索したりするときに簡単に解析できるためです。したがって、メモリに行がある場合、次のようになります。
var line // you've already assigned this
line = string.Format("DELETED|{0}", line);
そして、それをファイルに書きline
戻す必要があります。ファイルへの書き込み方法はわかりませんが、この例のファイル内のそのレコードの位置を知っていると仮定しましょう:
int startIndex // you have already assigned this somewhere
// it's the starting index of this line
using (FileStream fs = new FileStream("path to file", FileMode.Create, FileAccess.Write))
{
using (BinaryWriter bw = new BinaryWriter(fs))
{
bw.Position = startIndex
bw.Write(Encoding.Default.GetBytes(line), 0, line.Length);
}
}
于 2013-04-19T12:33:30.420 に答える