Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: dữ liệu đĩa a

  1. #1
    Ngày gia nhập
    10 2007
    Bài viết
    16

    Mặc định dữ liệu đĩa a

    ko biết tại sao bài của em ko thấy đâu nữa đành phải viết lại vậy.
    Ai biết code đọc và khôi phục dữ liệu đĩa a chỉ em với nha. cám ơn

  2. #2
    Ngày gia nhập
    10 2007
    Bài viết
    16

    Code:
    #include <dos.h>
    #include <stdio.h>
    #include <iostream.h>
    #include <PROCESS.H>
    #include <conio.h>
    void main()
    {
    struct BootSector
    {
    	unsigned char OEM[3];
    	unsigned char Version[8];
    	unsigned int BytePerSector;
    	unsigned char SectorPerCluster;
    	unsigned int ReservedSector;
    	unsigned char FatNum;
    	unsigned int RootEntry;
    	unsigned int Sum_Sector;
    	unsigned char MediaDescriptor;
    	unsigned int SectorPerFat;
    	unsigned int SectorPerTrack;
    	unsigned int HeadPerDisk;
    	unsigned long HiddenSector;
    	unsigned long SumSector;
    	unsigned char PhysicDisk;
    	unsigned char Danhrieng;
    	unsigned char KiHieuNhanDien;
    	unsigned char SerialNumber[4];
    	unsigned char VolumeLabel[11];
    	unsigned char FATID[8];
    	unsigned char BootProgram[450];
    }b;
    
    unsigned char  c[512];
    
    cout << "\n";
    cout << "kq: " << absread(0,1,0,&b);
    cout<< int(c[511]) << "|"<< int(c[512]) << "\n";
    
    	cout << "OEM[3]: " << b.OEM[0]  <<  b.OEM[1] <<b.OEM[2]<< "\n" ;
    
    	cout << "BytePerSector: " << b.BytePerSector<< "\n" ;
    	cout << "SectorPerCluster: " << b.SectorPerCluster<< "\n" ;
    	cout <<  "ReservedSector: " << b.ReservedSector<< "\n" ;
    	cout <<  "FatNum: " << b.FatNum<< "\n" ;
    	cout <<  "RootEntry: " << b.RootEntry<< "\n" ;
    	cout <<  "Sum_Sector: "<< b.Sum_Sector<< "\n" ;
    	cout <<  "MediaDescriptor: " <<b.MediaDescriptor<< "\n" ;
    	cout <<  "SectorPerFat: " <<b.SectorPerFat<< "\n" ;
    	cout <<  "SectorPerTrack: " << b.SectorPerTrack<< "\n" ;
    	cout <<  "HeadPerDisk: " << b.SectorPerTrack<< "\n" ;
    	cout <<  "HiddenSector: " <<b.HiddenSector<< "\n" ;
    	cout <<  "SumSector: " << b.SumSector<< "\n" ;
    	cout <<  "PhysicDisk: " << b.PhysicDisk<< "\n" ;
    	cout <<  "Danhrieng: " << b.Danhrieng<< "\n" ;
    	cout <<  "KiHieuNhanDien: " <<b.KiHieuNhanDien<< "\n" ;
    	cout <<  "SerialNumber[4]: " << b.SerialNumber[0] << b.SerialNumber[1]<< b.SerialNumber[2]<< b.SerialNumber[3]<< "\n" ;
    int i,j ;
    
    	cout <<  "VolumeLabel[11]: ";
    	for (i=0;i<11 ;i++)
    	{
    	cout << b.VolumeLabel[i] ;
    	}
    	cout <<"n";
    
    	cout <<  "FATID[8]: ";
    
    	for (j=0;j< 8; j++)
    	{
    	cout << b.FATID[i] ;
    	}
    	cout <<"n";
    	cout <<  "BootProgram[450]: "<< "\n" ;
    	getch();
    
    }
    em vừa sưu tầm đc code nay
    dùg boot sector nhưng ko biết cách đọc sector bất kỳ và khôi phục dữ liệu đĩa A
    ai biết chỉ cho em đc ko
    với lại cái đó bị lỗi gì đó chỗ SectorPerCluster FatNum ai biết chỉ em nha
    Đã được chỉnh sửa lần cuối bởi ngminhduong : 26-10-2007 lúc 05:04 PM.

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    một nơi xa xăm...
    Bài viết
    127

    Bạn ơi.Hình như cái khai báo
    Code:
    unsigned char c[5012];
    sai thì phải.Chỉ c[512] thôi.
    Với lại code của cậu không đầy đủ...xem lại đi

  4. #4
    Ngày gia nhập
    10 2007
    Bài viết
    16

    mong anh em chỉ giáo thêm nha
    với lại mấy anh ơi cho em hỏi chổ cái SectorPerCluster, FatNum sao ko hiện lên số (kiểu ký tự) mà nó hiện lên ký tự gì đó

    Code:
    cout<< int(c[511]) << "|"<< int(c[512]) << "\n";
    cho em hỏi code tren in ra số. số đó có ý nghĩa gì vậy các anh
    em mới học thôi
    mong các anh chỉ giáo.
    Đã được chỉnh sửa lần cuối bởi Xcross87 : 26-10-2007 lúc 10:01 PM.

  5. #5
    Ngày gia nhập
    06 2007
    Nơi ở
    một nơi xa xăm...
    Bài viết
    127

    Code của cậu sai rồi
    unsigned char c[512];
    cout << "\n";
    cout << "kq: " << absread(0,1,0,&b);
    cout<< int(c[511]) << "|"<< int(c[512]) << "\n";
    cậu khai báo c[512].Rồi chả có tính toán gì liên quan cả mà cậu đòi đọc.Cậu đọc cái gì ở đây

    Bạn có thể sử dụng ngắt 13 của bios (chức năng 2) để đọc sector.Với các giá trị cần truyền vào thanh ghi như sau
    Code:
    ah=2(chức năng đọc)
    dl = ổ đĩa ( 1=A,2=B,...80=C...)(ở đây là 1)
    dh=mặt đọc( trường hợp này thì dh=0)
    ch= rãnh (cylinder) ( trường hợp này ch=0)
    cl= sector(1-n) (trường hợp này là 1)
    al=số sector đọc ( trường hợp này là 1)
    es:bx chỉ đến vùng nhớ đệm đọc vào ( chỉ đến 1 biến buf[512])
    Đã được chỉnh sửa lần cuối bởi Xcross87 : 26-10-2007 lúc 10:02 PM.

  6. #6
    Ngày gia nhập
    10 2007
    Bài viết
    16

    Mặc định dữ liệu đĩa a

    Trích dẫn Nguyên bản được gửi bởi Alviss Xem bài viết
    Code của cậu sai rồi

    cậu khai báo c[512].Rồi chả có tính toán gì liên quan cả mà cậu đòi đọc.Cậu đọc cái gì ở đây
    em đang cần đọc boot sector của đĩa A

    có ai biết phục hồi dữ liệu đĩa A ko chỉ em đi. ý tưởng thôi củng đc mà. cám ơn nhiều nha.
    Đã được chỉnh sửa lần cuối bởi Xcross87 : 26-10-2007 lúc 10:02 PM.

  7. #7
    Ngày gia nhập
    06 2007
    Nơi ở
    một nơi xa xăm...
    Bài viết
    127

    Mình thì không biết về việc khôi phục dữ liệu vì chưa có động đến bao giờ.Nhưng nếu là đọc boot sector của đĩa A thì cái code của cậu không ổn lắm.Cậu xem kỹ lại đi

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn