Chủ đề: Đọc tập tin Hệ điều hành
-
28-10-2008, 01:39 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Đọ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ả.View more random threads:
- Thêm sự kiện khi Click Phải Chuột???
- cho em hỏi về ý nghĩa các project
- Ko lưu trữ vào danh sách liên kết được, lỗi do đâu?
- Giao tiếp USB bằng VC++
- Lỗi VS 2008 fatal error C1902
- Viết chương trình tạo lập và tìm kiếm dữ liệu
- Lập trình đa ngôn ngữ trên VC++. Cần sự giúp đỡ!
- atlimage.h trong VC6.0 laì gì?
- Hỏi về Enter trong Edit Control
- ListView trong Visual C++ | làm sao cố định ListView
-
28-10-2008, 04:56 PM #2Junior Member
- 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.
-
28-10-2008, 05:01 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
đọ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");}
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]
-
29-10-2008, 08:43 AM #4Junior Member
- 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"
-
29-10-2008, 09:02 AM #5Junior Member
- 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]
-
29-10-2008, 01:19 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
đây là thư viện của nó
-
29-10-2008, 01:24 PM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
quên, còn đây nữa
-
29-10-2008, 03:54 PM #8Junior Member
- 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);
-
29-10-2008, 04:09 PM #9Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi zkday2686
-
29-10-2008, 04:22 PM #10Junior Member
- 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 ?
Không chỉ dừng lại ở việc sử dụng nguyên liệu cao cấp, mỗi công trình còn được "chăm sóc" bằng 4 dịch vụ xuất sắc của Tre Nghệ. Từ việc tư vấn, thiết kế đến thi công và hoàn thiện, mọi quy trình đều...
Chất Lượng và Sáng Tạo: Kiến Trúc...