2013-04-19 2 views
1

개인 정보 (이름, 성, DOB 등)를 Records.dat라는 .dat 파일에 저장하는 프로그램이 있습니다. 한 사람의 정보를 파일에서 삭제하고 "DELETED"로 바꾸거나 정보를 완전히 삭제하는 가장 이상적인 방법은 무엇입니까?.dat 파일에서 텍스트 삭제 또는 변경

+5

왜 데이터베이스를 사용하지 않습니까? –

+6

파일의 형식은 무엇입니까? '.dat'는 아무것도 될 수 있습니다. –

+2

System.IO.File.Delete ("records.dat"); –

답변

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); 
    } 
} 
관련 문제