2010-03-27 3 views
3

아무 것도 덮어 쓰지 않고 파일에 쓰고 싶습니다. 레코드가 들어있는 텍스트 파일입니다. 특정 레코드를 삭제할 때 실제로 파일에서 레코드를 제거하지 않고 삭제 된 헤더에 정보를 넣습니다. 어떻게해야합니까?g ++에서 텍스트 파일의 시작 부분에 추가하는 방법

+2

나는 앞다리를 의미한다고 생각합니다. – Cam

답변

2

처음부터 다시 쓸 필요없이 파일을 시작할 수 없습니다. 끝까지 가야합니다. (그것이 의미하는 바로는 단어 "추가"가 의미하는 것입니다.)

해당 플래그의 공간을 예약하지 않고 레코드를 삭제 된 것으로 플래그 할 수있게하려면 해당 정보를 끝에 배치하거나 모든 것을 다시 써야합니다.

더 현명한 접근 방법은 실제로 공간을 미리 예약하는 것입니다. 예를 들어 각 레코드에 "삭제 된"필드를 배치하는 것입니다.

일부와 함께 이러한 문자를 사용 - 일반적으로 기록에 dissallowed하는 특정 문자가있는 경우

+0

처음에 파일을 삭제할 때 정보를 저장할 수있는 빈 공간을 예약하면 어떻게됩니까? – neuromancer

+0

@ 페놈, 그게 그가 제안하는 것입니다. 좋은 생각 btw (+1 @ 마이클). – Cam

+0

그는 각 레코드에 필드를 추가하여 공간을 미리 예약 할 것을 제안했습니다. 나는 실제로 파일 앞에 공간을 예약하는 것에 대해 이야기하고있다. – neuromancer

0

한 가지 가능한 솔루션입니다 (내가 틀렸다면 수정하시기 바랍니다 각 파일 레코드 인 것처럼 보인다) 단어 플래그의 수 (예 : # deleted # 또는 #가 #가 레코드에서 일반적으로 허용되지 않는 문자 인 경우).

그런 다음 레코드의 시작 부분에있는 내용을 덮어 씁니다. 그것은 어쨌든 지워 지므로 여러분이 그 부분을 덮어 쓰는 것이 중요하지 않습니다.

반면에 '삭제 된'파일을 복구해야 할 필요가있는 경우이 방법은 바람직하지 않습니다.

덧붙여서 - 파일 끝 부분에 (파일의 끝에) 삭제 된 플래그를 추가하면 파일 크기를 알면 파일을 확인하는 것이 매우 쉽다는 점에 유의하십시오.

관련 문제