1

個人情報 (名前、姓、生年月日など) を Records.dat という名前の .dat ファイルに保存するプログラムがあります。ファイルから 1 人の情報を削除し、それを「DELETED」に置き換えるか、情報を完全に削除する理想的な方法はどれですか?

4

1 に答える 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 に答える