Funcionar para esconder e mostrar o cursor na tela

Files Recovery Software
Início Detalhes de Contato Apoio ao Cliente Download Demo Produtos  

 
 

/* Funcionar para esconder e mostrar o cursor na tela */

show_hide_cursor ( 32, 0 );

gotoxy(15,18);cprintf("[ %d ] Files Recovered...",
num);

/* search for the data until the ending sector of the disk */

while(loop<Sectors_in_HDD2)
{
/* Read one Sector (Sector No. = loop) */
readabsolutesectors ( 0x81, loop, 1, buffer );

gotoxy(19,16);cprintf("Scanning Sector Number = % ld",
loop);

if(kbhit())
{
show_hide_cursor ( 6, 7 ); /* Retrieve the
cursor before
Exit the program
*/
exit(0);
}

/* se especificado o encabeçamento é encontrado */
if((memcmp ( buffer, header,7))==0)
{

/* lógica para fornecer a lima - nome a automaticamente
criar as limas para conservar os dados recuperados */

strcpy(filename, path);
itoa(num,temp,10);
strcat(filename, temp);
strcat(filename,".DOC");
start_file=loop; /* starting sector of file */

gotoxy(5,19);cprintf("File Found..., Saving As %s",
filename);
num++;

////////////// Condições próximas da lima \\\\\\\\\\\\\\\\

file_size=0;
while( file_size<5000000)
{

loop++;
file_size+=512;
readabsolutesectors ( 0x81, loop, 1, buffer );

gotoxy(19,16);cprintf("Scanning Sector Number = % ld" ,
loop);

/* if file size reaches up to maximum size of 5MB */
if(file_size>=5000000)
{
end_file=loop; /* Ending Sector of File */
Recover_the_file();/* write the data to file */
break;
}

/* if footer of DOC file is found */
for(i=0;i<512;i++)
{
if( memcmp(buffer+i,DOC_footer,12)==0 )
{
end_file=loop; /* Ending Sector of File */
Recover_the_file();/* write the data to file */
break;
}
}

/* if another header is found */
if( memcmp(buffer,header,7)==0 )
{
loop=loop-1;
end_file=loop; /* Ending Sector of File */
Recover_the_file();/* write the data to file */
break;
}
if(kbhit())
{
show_hide_cursor ( 6, 7 );
exit(0);
}
}

}
loop++;
} ////////While Loop Ends Here

 

/* indicar a mensagem para a conclusão da busca e da recuperação */ if(loop>=Sectors_in_HDD2 )
{
gotoxy(17,23);cprintf("The Saving of files in the Disk is
Completed !!");
gotoxy(17,24);cprintf("Press Any Key to Exit...");
show_hide_cursor ( 6, 7 );
getch();
}

}

Comentários no coding:

A geometria da estrutura é usada pela função getdrivegeometry usando 13H a extensão INTERNA, número 0x48 da função começar os vários parâmetros do disco.

O diskaddrpacket da estrutura é para o formato do pacote do endereço de disco, para ser usado pelos readabsolutesectors funciona.

A função getdrivegeometry (movimentação interna) é começar parâmetros da movimentação do disco especificou a movimentação física do número de movimentação.

o peekb (do char) (0x0040, 0x0075) é usado encontrar o número dos discos duros conectados ao computador, armazenado na posição de memória representada pelo segmento 0040H: 0075H offset. Se o número total dos discos duros unidos for menos então dois indicar a mensagem de erro e retirar.

Sectors_in_HDD2=getdrivegeometry (0x81); encontra os vários parâmetros do segundo disco duro físico (0x81) e de retornos o número total dos setores do disco.

A indicação se (acesso (trajeto, 0)! = 0) verificam a acessibilidade do trajeto dado pelo usuário. Se o diretório do destino não existir, o destino é criado até um nível e se o trajeto dado verificar pela circunstância se (mkdir (trajeto)! =0) é ilegal, mensagem de erro é indicado.

Os nomes da lima das limas automaticamente criadas para conservar os dados recuperados são criados tais que os primeiros três caráteres das limas estão dados o PTT pelo strcat (trajeto, “\ \ Ptt”); função. É feita assim para evitar os nomes duplicados da lima no diretório do destino. Conseqüentemente os nomes da lima de limas recuperadas são dados no formato de “PTTxxxxx.DOC”

O show_hide_cursor da função (32, 0); é usado esconder o cursor da tela onde o show_hide_cursor (6, 7); recupera o cursor para trás para selecionar.


Os readabsolutesectors da função (0x81, laço, 1, amortecedor); Lê um setor do segundo disco duro físico especificado pelo laço do número do setor.

Se o encabeçamento da lima for encontrado, start_file = laço; ajusta o start_file a começar o número do setor da lima a ser recuperada. O programa segue as três circunstâncias dadas em seguida, para encontrar o setor do ending da lima:

  • Se o tamanho de lima alcançar até máximo fazer sob medida de 5MB
  • Se o footer da lima do DOC for encontrado
  • Se um outro encabeçamento for encontrado


O inteiro longo end_file é ajustado ao número do setor do ending da lima pelo end_file=loop; se qualquer uma condição fora de três for satisfeita. Agora os dados dos setores, partindo do número do setor start_file ao número do setor end_file são conservados à lima com a função Recover_the_file().


Previous page

page 1 | 2 | 3 | 4 | 5 | 6

Next page
 
 
Data Recovery livro
 
Capítulo-1 Uma vista geral da recuperação dos dados
Capítulo-2 Introdução de discos duros
Capítulo-3 Aproximação lógica aos discos e ao ósmio
Capítulo-4 Sistemas de número
Capítulo-5 Introdução da programação de C
Capítulo-6 Introdução aos princípios do computador
Capítulo-7 Comandos necessários do DOS
Capítulo-8 Funções e interrupções do Disco-BIOS que seguram com C
Capítulo-9 Segurando discos duros grandes
Capítulo-10 Recuperação dos dados do disco flexível Corrupted
Capítulo-11 Fazendo apoios
Capítulo-12 MBR de leitura e modificando com programação
Capítulo-13 DBR de leitura e modificando com programação
Capítulo-14 Programação para “a recuperação da lima crua”
Capítulo-15 Programação para limpadores dos dados
Capítulo-16 Desenvolvendo mais utilidades para discos
Apêndice Glossário de termos da recuperação dos dados
 
 
Pro Data Doctor

Início

Produtos

Detalhes de Contato

Apoio ao Cliente

Download Demo

Termos e Condições

 
Pro Data Doctor