Fonctionner pour cacher et montrer le curseur sur l'écran

Files Recovery Software
Accueil Coordonnées Soutien à la clientèle Télécharger la démo Produits  

 
 

/* Fonctionner pour cacher (et exposition) le curseur sur l'écran */

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);
}

/* if specified header is found */
if((memcmp ( buffer, header,7))==0)
{

/* logic to provide the file name to automatically
create the files to save the recovered data */

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++;

////////////// États étroits de dossier \\\\\\\\\\\\\\\\

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

 

/* display message for completion of search and recovery */ 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();
}

}

Commentaires sur le codage :

La géométrie de structure est employée par fonction getdrivegeometry en utilisant 13H la prolongation INTERNE, le nombre 0x48 de fonction pour obtenir les divers paramètres du disque.

Le diskaddrpacket de structure est pour le format de paquet d'adresse de disque, être employé par les readabsolutesectors fonctionnent.

La fonction getdrivegeometry (commande interne) est d'obtenir des paramètres d'entraînement du disque a indiqué la commande physique de nombre d'entraînement.

(de char) le peekb(0x0040, 0x0075) est employé pour trouver le nombre de disques durs reliés à l'ordinateur, stocké à l'endroit de mémoire représenté par le segment 0040H : 0075H excentré. Si le nombre total des disques durs joints est moins alors deux montrent le message d'erreur et sortir.

Sectors_in_HDD2=getdrivegeometry (0x81) ; trouve les divers paramètres du deuxième disque dur physique (0x81) et des retours tout le nombre de secteurs du disque.

Le rapport si (accès (chemin, 0) ! = 0) vérifie l'accessibilité du chemin donné par l'utilisateur. Si l'annuaire de destination n'existe pas, la destination est créée jusqu'à un niveau et si le chemin donné vérifiait par condition si (mkdir (chemin) ! =0) est illégal, message d'erreur est montré.

Les noms de dossier des dossiers automatiquement créés pour sauver les données récupérées sont créés tels que les trois premiers caractères des dossiers sont donnés des PTTs par le strcat (chemin, " \ \ PTTs ") ; fonction. Elle est faite ainsi pour éviter les noms doubles de dossier dans l'annuaire de destination. Par conséquent les noms de dossier des dossiers récupérés sont donnés dans le format de " PTTxxxxx.DOC "

Le show_hide_cursor de fonction (32, 0) ; est employé pour cacher le curseur de l'écran où le show_hide_cursor (6, 7) ; recherche le curseur de nouveau à l'écran.


Les readabsolutesectors de fonction (0x81, boucle, 1, amortisseur) ; Lit un secteur du deuxième disque dur physique indiqué par la boucle de nombre de secteur.

Si l'en-tête du dossier est trouvé, start_file = boucle ; place le start_file à commencer le nombre de secteur du dossier à récupérer. Le programme suit les trois conditions données après, pour trouver le secteur de fin du dossier :

  • Si le volume de fichier atteint jusqu'à maximum classer de 5MB
  • Si le titre de bas de page du dossier de Doc. est trouvé
  • Si un autre en-tête est trouvé


Le long nombre entier end_file est placé au nombre de secteur de fin du dossier par l'end_file=loop ; si n'importe quelle une condition sur trois est satisfaite. Maintenant les données des secteurs, à partir du nombre de secteur start_file au nombre de secteur end_file sont sauvées au dossier avec la fonction Recover_the_file ().

Previous page

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

Next page
 
 
Récupération de données livre
 
Chapitre 1 Une vue d'ensemble de rétablissement de données
Chapitre 2 Introduction des disques durs
Chapitre 3 Approche logique aux disques et à l'OS
Chapitre 4 Systèmes de numération
Chapitre 5 Introduction de la programmation de C
Chapitre 6 Introduction aux fondations d'ordinateur
Chapitre 7 Commandes nécessaires de DOS
Chapitre 8 Fonctions et interruptions de Disque-BIOS manipulant avec C
Chapitre 9 Manipulation de grands disques durs
Chapitre 10 Rétablissement de données de disque souple corrompu
Chapitre 11 Fabrication des protections
Chapitre 12 MBR de lecture et de modification avec la programmation
Chapitre 13 DBR de lecture et de modification avec la programmation
Chapitre 14 Programmation pour le rétablissement " de dossier cru "
Chapitre 15 Programmation pour des essuie-glace de données
Chapitre 16 Développer plus d'utilités pour des disques
Annexe Glossaire des limites de rétablissement de données
 
 
Pro Data Doctor

Accueil

Produits

Coordonnées

Soutien à la clientèle

Télécharger la démo

Conditions générales de vente

 
Pro Data Doctor