Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 13
  1. #1

    Đọc tập tin Hệ điều hành

    mình đang học môn hệ điều hành. Nhưng mỉnh mù tịt môn này. Trước tới giờ chưa thực hành lập trình trên VC++ 6.0 bao gio nên thấy lúng túng. có câu hỏi muốn được giải đáp xin mọi người giúp đỡ, hướng dẫn.
    Cho người dùng nhập vào 1 tên tập tin, tìm kiếm trong bảng RDET cho biết tập tin này có đang nằm trong thư mục gốc của ổ đĩa mềm hay không, nếu có thì in ra vị trí các cluster mà tập tin đó đang chiếm (tìm trong bảng FAT1 để biết).
    Mình không biết tìm tên tập tin trong Rdet sao cả.

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Ủa, VC6 chạy trên win mà. Trong win thì làm gì có chuyện đọc trực tiếp bảng FAT như trong dos được. Muốn đọc thì phải gửi điều khiển vào driver và nhờ nó đọc giúp. Dù sao thì cũng ko thể đọc trực tiếp bảng FAT như bạn yêu cầu được.

  3. #3
    đọc bảng FAT tốt nhất là dùng mấy hàm đọc sector trong BC nó hỗ trợ rùi.

    Mình có mấy đoạn code lúc trước học HDH còn sót lại [IMG]images/smilies/smile.png[/IMG] bạn tham khảo thêm nhé.
    nó code bằng BC.


    Mã:
     #include<stdio.h>#include<conio.h>#include<dos.h>#include<alloc.h>  int GetValueFAT(char* FAT,int entry){    int i;    i = (int)entry*1.5;    int highByte = FAT[i+1];    int lowByte = FAT[i];     if(entry%2==0)        return (lowByte|((highByte&0xf)<<8));    else        return (highByte | ((lowByte&0xf0) >> 4));} void ReadFAT_SaveFile(int iDriver,char* FileName){    int *Result;    char *buff;    buff = (char*)malloc(4068);    absread(iDriver,9,1,buff);    int elementFAT = (int)(9*512)/(3/2);    Result = (int*)malloc(elementFAT);    for(int i=0; i<elementFAT; i++)    {        Result[i]= GetValueFAT(buff,i);    }     // giai phong vung nho     free(buff);    // phan ghi len tap tin         FILE* f;    f = fopen(FileName,"w");    for(int j=0;j<elementFAT;j++)        fprintf(f,"%2x",Result[j]);    free(Result);    fclose(f);} void main(){    clrscr();    ReadFAT_SaveFile(1,"b:\\FAT.txt");}
    ps: giờ nhìn lại cái màn hình BC xanh lè mà ngán code thiệt đó [IMG]images/smilies/wink.png[/IMG].


    Tiêu đề không dấu bạn không sửa lại mèo mà thấy thì .... Mèo sẽ xem bạn là 'chuột' ngay [IMG]images/smilies/biggrin.png[/IMG]

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    không. mình học lập trình hệ điều hành trên VC ++ 6.0. Thao tác trên đĩa mềm ảo. Sử dụng thư viện ngoài "RWDisk.h"

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    pó hand ---> sử dụng thư viện bên ngoài mà không đưa ra cho người khác, cũng không nói rõ nữa. rồi nhờ người khác giải đáp thắc mắc của mình khác nào bạn đang bắt người khác leo lên trời hả bạn [IMG]images/smilies/wink.png[/IMG]

    ps bài viết tiêu đề không dấu có lẽ bị mèo thịt cho mà xem [IMG]images/smilies/wink.png[/IMG]

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    đây là thư viện của nó

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    quên, còn đây nữa

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn coi lại code của zkday đi. Trong đó hàm này là quan trọng :
    Mã nguồn PHP:
    absread(iDriver,9,1,buff);  
    Bạn coi lại thư viện của mình đi ? Có viết lại hàm này ko ?

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi zkday2686
    Tiêu đề không dấu bạn không sửa lại mèo mà thấy thì .... Mèo sẽ xem bạn là 'chuột' ngay [IMG]images/smilies/biggrin.png[/IMG]
    Mình chưa mần thịt đâu, tại hôm này rằm ăn chay [IMG]images/smilies/biggrin.png[/IMG]. Mình đã thêm dấu vào tiêu đề cho khổ chủ rồi. Topic này khá hay, "thịt" nó uổng quá.

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mà sao mình đang học OS mà lại ko có mấy cái hay hay này nhi ?

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •