Arbeiten, um Cursor auf dem Schirm zu verstecken und zu zeigen

Files Recovery Software
Heim Kontakt Details Customer Support Demo herunterladen Produkte  

 
 

/* Arbeiten, um (und Erscheinen) Cursor auf dem Schirm zu verstecken */

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

////////////// File Close Conditions \\\\\\\\\\\\\\\\

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

}

Anmerkungen zur Kodierung:

Die Strukturgeometrie wird durch getdrivegeometry Funktion mit INTERNER 13H Verlängerung, Funktion Zahl 0x48, die verschiedenen Parameter der Scheibe zu erhalten verwendet.

Das Struktur diskaddrpacket ist für Plattenadresse-Paketformat, durch die readabsolutesectors verwendet zu werden arbeiten.

Die getdrivegeometry Funktion (interner Antrieb) ist, Antrieb Parameter der Scheibe zu erhalten spezifizierte körperlichen Laufwerknummer-Antrieb.

(Putzfrau) peekb (0x0040, 0x0075) wird benutzt, um die Zahl den Festplatten zu finden, die an den Computer angeschlossen werden, gespeichert an der Gedächtnisposition, die durch Segment 0040H dargestellt wird: Offset0075h. Wenn total, ist Zahl der angebrachten Festplatten weniger dann zwei Anzeige Fehlermeldung und Ausgang.

Sectors_in_HDD2=getdrivegeometry (0x81); findet die verschiedenen Parameter der zweiten körperlichen Festplatte (0x81) und der Rückkehr die Gesamtzahl Sektoren der Scheibe.

Die Aussage wenn (Zugang (Weg, 0)! = überprüft 0) die Zugänglichkeit des Weges, der vom Benutzer gegeben wird. Wenn Bestimmungsortverzeichnis nicht besteht, wird der Bestimmungsort bis zu einem Niveau hergestellt und wenn der gegebene Weg durch Bedingung ob überprüfte (mkdir (Weg)! =0) ist, Fehlermeldung wird angezeigt ungültig.

Den Akte Namen der automatisch hergestellten Akten, zum der zurückgewonnenen Daten zu speichern werden so verursacht, daß die ersten drei Buchstaben der Akten Postverwaltung durch strcat gegeben werden (Weg, „\ \ Postverwaltung“); Funktion. Sie wird so getan, um die doppelten Akte Namen im Bestimmungsortverzeichnis zu vermeiden. Folglich werden die Akte Namen der zurückgewonnenen Akten gegeben im Format von „PTTxxxxx.DOC“

Das Funktion show_hide_cursor (32, 0); verwendet wird, den Cursor vom Schirm zu verstecken in dem show_hide_cursor (6, 7); holt den Cursor zurück zu Schirm zurück.

Die Funktion readabsolutesectors (0x81, Schleife, 1, Puffer); Liest einen Sektor der zweiten körperlichen Festplatte, die durch Sektorzahlschleife spezifiziert wird.

Wenn die überschrift der Akte gefunden wird, start_file = Schleife; stellt das start_file auf das Beginnen der Sektorzahl der zurückgewonnen zu werden ein Akte. Das Programm folgt den drei Bedingungen, die zunächst gegeben werden, um den Endesektor der Akte zu finden:

  • Wenn Akte Größe bis zu maximalem erreicht, von 5MB sortieren
  • Wenn Seitenende der Doc. Akte gefunden wird
  • Wenn eine andere überschrift gefunden wird


Die lange end_file Ganzzahl wird auf die Endesektorzahl der Akte durch end_file=loop eingestellt; wenn irgendeine eine Bedingung aus drei heraus erfüllt ist. Jetzt werden die Daten der Sektoren, abfahrend von der Sektorzahl, die zur end_file Sektorzahl start_file ist, zur Akte mit der Funktion Recover_the_file gespeichert ().

Previous page

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

Next page
 
 
Data Recovery-Buch
 
Kapitel 1 Ein überblick über Daten-Wiederaufnahme
Kapitel 2 Einleitung der Festplatten
Kapitel 3 Logische Annäherung an Scheiben und OS
Kapitel 4 Zahlensysteme
Kapitel 5 Einleitung der C Programmierung
Kapitel 6 Einleitung in eine Computer-Grundlagen
Kapitel 7 Notwendige DOS Befehle
Kapitel 8 Scheibe-BIOS Funktionen und Unterbrechungen, die mit C anfassen
Kapitel 9 Behandlung der großen Festplatten
Kapitel 10 Daten-Wiederaufnahme von verdorbenem Floppy-Disc
Kapitel 11 Bilden der Unterstützungen
Kapitel 12 Lesenund änderndes MBR mit der Programmierung
Kapitel 13 Lesenund änderndes DBR mit der Programmierung
Kapitel 14 Programmierung für "Raw File" Wiederaufnahme
Kapitel 15 Programmierung für Daten-Wischer
Kapitel 16 Entwickeln von mehr Dienstprogrammen für Scheiben
Anlage Glossar der Daten-Wiederaufnahme Bezeichnungen
 
 
Pro Data Doctor

Heim

Produkte

Kontakt Details

Customer Support

Demo herunterladen

Allgemeine Geschäftsbedingungen

 
Pro Data Doctor