/* Εισάγετε το όνομα πορειών και αρχείων προορισμού για να σώσετε το ανακτημένο αρχείο*/
gotoxy(2,24);
cprintf("Εισάγετε την πορεία και το όνομα αρχείου για να ανακτήσετε το αρχείο: ");
fflush(stdin);
gets(Filename_with_path);
fp=fopen(Filename_with_path,"wb");
/* Εάν το μήνυμα λάθους επίδειξης Occured λάθους και παίρνει το όνομα πορειών και αρχείων εισαγωγής πάλι */
if(fp==NULL)
{
gotoxy(5,25);
cprintf("Error in opening the file");
getch();
clear_the_line(24);
gotoxy(0,25);
cprintf(" ");
integrate(size,cylinder,head,sector); /* Εισάγετε τον προορισμό πάλι */
}
/*Εάν όλα είναι εντάξει, ενσωματώστε και γράψτε*/
gotoxy(50,23);
cprintf("Ενσωμάτωση ........");
left= size%512;
sec = size/512;
sec++;
while(sec>0)
{
dinfo.drive = 0x00; /* αριθμός κίνησης για το Α:*/
dinfo.head = head; /* επικεφαλής αριθμός δίσκων */
dinfo.track = cylinder; /* αριθμός διαδρομής */
dinfo.sector= sector; /* αριθμός τομέα*/
dinfo.nsectors=1; /* αρίθμηση τομέα*/
dinfo.buffer = buf; /* απομονωτής στοιχείων */
result = _bios_disk(_DISK_READ, &dinfo);
/* Εάν υπάρχει λάθος διαβάζοντας οποιοδήποτε τομέα */
if( (result & 0xff00) != 0)
{
gotoxy(5,25);
cprintf("διαβάστε τον κύλινδρο λάθους %u, Head %u, Sector %u",
cylinder, head, sector);
}
else
{
if(sec==1)
{
for(i=0;i<left;i++)
fputc(buf[i],fp); /*Γράψτε τις ενσωματωμένες πληροφορίες στο αρχείο */
}
else
{
fwrite(buf,512,1,fp);
}
|