플로피에는 80 대위 (0에서 79) 있기 때문에 플러피 디스크의 자료의 심상을 보전되는 파일의 크기에는, 각 대위 다는 것을 그것과 각 분야 파악에 18의 분야가 자료의 512의 바이트, 따라서 정확한 바이트 1,474,560, 2명의 측 또는 머리 (머리 0와 머리 1)이어야 한ㄴ다는 것을 항상 기억하십시오
총 바이트 = (대위의 수) * (머리의 수) * (대위 당 분야) * 512의 수
= 80*2*18*512
= 1,474,560의 바이트
따라서, 만약에 플러피 디스크의 아무 분야나에 읽기에 있는 아무 과실나 있으면, 그것은 전체 정보를 우리가 이 파일에서 분야에 의하여 디스크 심상 분야를 쓰기 위하여 려고 하고 있는 목적지 디스크를 위해 완전하게 또는 부분적으로 무용할 시킬 1,474,560의 바이트에서 파일의 크기를 바꿀 것이다.
이것은 그것의 배부 단위에서 할당되기 때문에 컴퓨터가 분야 범위 내의 플러피 디스크의 매체의 표면에 어떤 파일든지의 정보를 읽기 때문에 이렇게 이다. 지금 파일의 자료의 분야가 바뀌는 경우에, 완전한 파일 정보는 바뀐다.
분야 판독 오류의 해결책을 위해 생각
우리가 디스크의 표면에서 정보를 읽을 수 없을지도 모른다 그것에는 그것의 표면에 그런 나쁜 지역이 있을지도 모른다 나쁜 읽을 가치가 없는 플로피에 가능하다.
이 조건에서 우리가 건너뛴 이 분야 의지의 정보 이미지 파일의 크기가 1,474,560의 바이트와 이 경우에는 달랐던 대로 플로피의 심상은 다른 분야를 위해 조차 왜곡되고.
이미지 파일의 크기를 유지하고 목적지 디스크에 정확한 분야 위치에 정보의 나머지를 풀칠할 것을, 우리는 512의 바이트의 원래 자료의 대신으로 다른 약간 정보가 쓰고 이와같이, 가능할 것이다 정보의 나머지를 저장하기 위하여 그러나 그런 케이스에 있는 회복이 부분적인 회복일지도 모른다.
당신의 체계가 또한 근원 플로피의 첫번째 분야를 읽지 못하는 경우에, 목적지 플로피에 심상을 풀칠한 후에 당신은, 플로피의 DOS 부트 기록을 다시 쓰기 위하여의 앞에 기술된 프로그램을 실행해야 한다.
저희가 우리가 프로그램해서지 그것을 어떻게 해 좋은지 보게 하십시오:
#include <bios.h>
#include <stdio.h>
void main(void)
{
int head,track;
union REGS regs;
int result,i,sector;
char filename[80];
struct diskinfo_t dinfo;
static char dbuf[512];
|