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

Đề tài: Đọc nội dung của BOOT SECTOR tại vi trí 2007

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

    Smile Đọc nội dung của BOOT SECTOR tại vi trí 2007

    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <dos.h>
    #define BYTE	unsigned char
    #define WORD	unsigned int
    #define DWORD	unsigned long
    //dinh nghia cau truc cua mot sector
    typedef struct BOOT_SECTOR
    {
    	BYTE	First[0x0B];
    	WORD	SectSize;
    	BYTE	ClustSize;
    	WORD	ReservedSect;	//so sector truoc bang fat
    	BYTE	FATNum;
    	WORD	RDETSize;
    	WORD	VolSize;
    	BYTE	MediaDescriptor;	//ki hieu loai voi
    	WORD	FATSize;
    	WORD	TrackSize;
    	WORD	HeadNum;
    	DWORD	HiddenSect;
    	DWORD	VolSize_;
    	BYTE	Last[512 - 0x24];
    }boot;
    
    void main()
    {
    	BOOT_SECTOR bs;
    	int Csvol;
    	printf("\nNhap vao chi so vol(0:A,1:B,2:C.........):");
    	scanf("%d",&Csvol);
    	if(absread(Csvol,1,0,&bs) != 0)
    	{
    		printf("loi truy xuat.chuong trinh ket thuc");
    		return;
    	}
    	//vi tri bat dau cua cluster 2007
    	WORD vitri;//kieu 2 bytes thi co the ko du de dien gia tri - vol co the chiem nhieu trieu sector 
    	vitri = bs.ReservedSect + bs.FATNum*bs.FATSize + bs.RDETSize*32/bs.SectSize + (2007 - 2)*bs.ClustSize;
    	//co the kiem tra cluster co ton tai hay ko
    	BYTE *buf;
    	buf = new BYTE[bs.ClustSize*512];
    	//co the kiem tra mang byf co cap phat duoc ko
    	//doc cluster 2007 va luu vao buf
    	if(absread(Csvol,bs.ClustSize,vitri,&buf) != 0)
    	{
    		printf("\n Loi ko the truy xuat dia. chuong trinh ket thuc");
    			return ;
    	}
    	// hien thi noi dung ra man hinh
    	printf("Noi dung cua cluster:\n");
    	for(int i=0;i<bs.ClustSize*512;i++)
    		printf("%02x",buf[i]);//hoac la printf("%c",buf[i]);
    	// luu noi dung vao tap tin
    	char filename[60];
    	printf("nhap ten can luu noi dung:");
    	fflush(stdin);
    	gets(filename);
    	FILE *f = fopen(filename,"wb");
    	if(f == NULL)
    	{
    		printf("\n Loi Ko the mo tap tin.chuong trinh ket thuc ");
    			return ;
    	}
    	fwrite(buf,1,bs.ClustSize*512,f);
    	fclose(f);
    }

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

    //dinh nghia cau truc cua mot sector
    Bạn muốn hỏi vấn đề gì vậy, hay là post chương trình cho mọi người tham khảo?
    typedef struct BOOT_SECTOR
    {
    ...
    }boot;
    //Khai báo
    BOOT_SECTOR bs; // chương trình chạy được ah?

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

    ko chỉ là tham khảo thôi
    có cách nào hay hơn bạn có thể chỉ mình

  4. #4
    Ngày gia nhập
    08 2008
    Bài viết
    15

    nếu em chỉ muốn xem nội dung sector( chỉ thuần túy là xem) xác định nội dung của 1 tập tin ở thư mục còn thì làm sao ạ, mấy anh chỉ em với.

Các đề tài tương tự

  1. Bài tập C Chương trình hiển thị thông tin của boot sector
    Gửi bởi vungtroicuabo trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 21-11-2011, 03:36 PM
  2. Trả lời: 5
    Bài viết cuối: 30-10-2011, 10:42 PM
  3. Bài tập C Đọc boot sector của đĩa rồi lưu ra file text
    Gửi bởi nhimbkno1 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 02-12-2010, 08:54 PM
  4. Các bài tập về Boot sector help!
    Gửi bởi @*longhai*@ trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 28-10-2009, 10:25 AM
  5. Read Bootsector | Đọc boot sector viết bằng Turbo C
    Gửi bởi AlexF trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 10-10-2009, 04:24 PM

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