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

Đề tài: Bài tập C++ | Tìm kiếm tập tin?

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

    Mặc định Bài tập C++ | Tìm kiếm tập tin?

    C++ Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<string.h>
    4. #include<math.h>
    5. #include<dos.h>
    6. #include<process.h>
    7. #include<alloc.h>
    8. #include<stdlib.h>
    9. #include<dir.h>
    10. char bs[]="\\*.*";
    11. #define attr (FA_RDONLY|FA_DIREC|FA_ARCH|FA_HIDDEN|FA_SYSTEM|FA_LABEL)
    12.  
    13. void scandir(char *d);
    14. void scandir(char *d)
    15. {
    16.  int first=1;
    17.  int s;
    18.  char dd[50],ddd[50];
    19.  struct ffblk f;
    20.  sprintf(dd,"%s%s",d,bs);
    21.  printf("%s\n",dd);
    22.  while(1)
    23.  {
    24.   if(first)
    25.   {
    26.    s=findfirst(dd,&f,attr);
    27.    first=0;
    28.   }
    29.   else
    30.   s=findnext(&f);
    31.   if(s!=0) return;
    32.   if(f.ff_name[0]=='.') continue;
    33.   if(f.ff_attrib==FA_DIREC)
    34.   {
    35.    sprintf(ddd,"%s\\%s",d,f.ff_name);
    36.    scandir(ddd);
    37.   }
    38.   else
    39.   printf("%s\n",f.ff_name);
    40.  }
    41. }
    42.  
    43. void main()
    44. {
    45.  char ten[50];
    46.  clrscr();
    47.  printf("nhap ten thu muc :");
    48.  gets(ten);
    49.  scandir(ten);
    50.  getch();
    51. }
    Chương trình tìm tệp trong thư mục em làm không biết sao không chạy được . BẠn nào giúp giùm . Thanks

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

    findfirst(dd,&f,attr);
    Câu lệnh này của bạn chưa đúng.Bạn xem lại câu lệnh này nhé
    Code:
    int findfirst(char *path,struct ffblk *fb,int attrib);
    Mình gợi ý,sau bạn sửa cho phù hợp với bài nhé
    Nếu bạn thay cái dd trong lệnh findfirst của bạn bằng "*.*" thì sẽ tìm ra những file trong thư mục cùng thư mục với nó
    Chú ý là đường dẫn phải bao gồm cả kiểu file tìm kiếm nhé vd : "D:\C++\*.*" chẳng hạn
    *Chúc bạn thành công
    Đã được chỉnh sửa lần cuối bởi Alviss : 29-10-2007 lúc 08:19 AM.

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

    Nhưng mà cái dd của mình là = d+bs với bs[]="\\*.*" và d do người dùng nhập vào ( có dạng ví dụ như sau : D:\\TC ) . Vậy thì dd sẽ là D:\\TC\\*.* và chương trình sẽ tìm các tệp trong thư mục này chứ hỉ . Sao mà không chạy được ??? Không biết mình khai báo cú pháp của đường dẫn có sai không ta ???

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

    Sorry bạn.Lúc trước mình chưa xem kỹ bài.Bây giờ vừa xem xong,mình đã test thử bài bạn.Chạy ổn mà.Sao bạn lại bảo không chạy được

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

    Oh cám ơn bạn nhiều nhé . Mình biết mình sai chỗ nào rồi . Lúc nhập đường dẫn mình nhập thế này : C:\\BORLANDC . Nhập vậy là sai . Phải nhập là C:\BORLANDC mới đúng . hehe

  6. #6
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    520

    Mặc định Bài tập C++ | Tìm kiếm tập tin?

    bác bác cho em hỏi trong DEV C có hàm findfirst không nếu có chỉ hộ em thư viện nào, sáng đến giờ em tìm khổ quá

  7. #7
    Ngày gia nhập
    04 2009
    Bài viết
    7

    Trích dẫn Nguyên bản được gửi bởi nanosi Xem bài viết
    Chương trình tìm tệp trong thư mục em làm không biết sao không chạy được . BẠn nào giúp giùm. Thanks
    Bạn chuyển Code Pascal sang C++ nhá!
    Pascal Code:
    1. uses
    2.   Dos, Crt;
    3. var
    4.   FSearch: SearchRec;
    5.   FName: String;      
    6.   EFile: string[5];  
    7.   FPath: ComStr;      
    8. procedure nhap_file;
    9. begin
    10.   Write ('File Name: ');
    11.   Readln (FName);
    12.   EFile:= concat ('*', copy (FName, length (FName)- 3, 4));
    13.   Write ('Ban muon tim no o thu muc nao? ');
    14.   Readln (FPath);
    15. end;
    16. procedure tim_file;
    17. begin
    18.   FPath:= FPath + '\';
    19.   FindFirst (FPath+EFile, anyfile, FSearch);
    20.   While (DosError= 0) and (IOResult= 0) do
    21.     begin
    22.       if FName= FSearch.Name then
    23.         begin
    24.           writeln(' da tim thay!');
    25.           exit;
    26.         end
    27.       else
    28.         repeat
    29.           FindNext (FSearch);
    30.         until (DosError<>0) or (IOResult<>0) or (FName= FSearch.Name);
    31.     end;
    32. end;
    33. procedure test;
    34. begin
    35.   nhap_file;
    36.   tim_file;
    37. end;
    38. begin
    39.   clrscr;
    40.   test;
    41.   readln
    42. end.
    Sorry bạn.Lúc trước mình chưa xem kỹ bài.Bây giờ vừa xem xong,mình đã test thử bài bạn.Chạy ổn mà.Sao bạn lại bảo không chạy được
    Mình ko chạy dc. Mình dùng C-Free 4
    Khi tìm file trong thư mục thì dùng lệnh findfirst; path có dạng, ví dụ C:\Borland\*.exe
    ||

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

  1. [Kiếm Thế] Kiếm Thế Ngạo Thiên Kiếm Chạy Thử Nghiệm vào 10h ngày 15/09
    Gửi bởi c0jskull trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 5
    Bài viết cuối: 29-09-2013, 10:45 AM
  2. [Kiếm Thế] Kiếm Thế Kiếm Linh Chạy Thử Nghiệm vào 10h ngày 4/7
    Gửi bởi c0jskull trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 05-07-2013, 12:16 PM
  3. [Kiếm Thế] Kiếm Thế Kiếm Linh Chạy Thử Nghiệm vào 10h ngày 4/7
    Gửi bởi c0jskull trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 03-07-2013, 10:30 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