Bạn ghé thăm diễn đàn lần đầu? hãy đăng ký ngay bây giờ để tham gia.
  • Đăng nhập:

Chào mừng bạn đến với ITVNN FORUM - Diễn đàn công nghệ thông tin.

Nếu đây là lần đầu tiên bạn tham gia diễn đàn, xin mời bạn xem phần Hỏi/Ðáp để biết cách dùng diễn đàn. Để có thể tham gia thảo luận bạn phải đăng ký làm thành viên, click vào đây để đăng ký.


  • Partner Area
    • ITVNN HOSTING - Thiết kế website, Cung cấp Domain, Hosting, VPS Việt Nam Anh Hùng - Thông tin truyền thông
kết quả từ 1 tới 1 trên 1
Tăng kích thước phông chữ Giảm kích thước phông chữ
  1. #1
    Cuni's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Sep 2009
    Thành viên thứ
    231
    Giới tính
    Bài gởi
    144
    Level: 35 [?]
    Experience: 769,156
    Next Level: 824,290
    Cảm ơn 3
    Cảm ơn 2 lần / 2 Bài viết

    Default Đọc các file khác nhau bằng C++  

    Bạn có thể dùng 1 trong nhiều thư viện C hay C++ khác nhau ở các mức độ từ thấp đến cao để truy xuất file, tuy nhiên để dễ dàng kiểm soát việc truy xuất file đồng thời bởi nhiều ứng dụng khác nhau, bạn nên dùng các hàm API của Windows hay các class đối tượng có sẵn trong MFC. Sau đây là đoạn code C++ thí dụ trong CD MSDN dùng các hàm API Windows như CreateFile, ReadFile, WriteFile, LockFile, UnLockFile, CloseHandle... để đọc nội dung file one.txt rồi ghi vào cuối file two.txt có sẵn:
    Code: 
    //khai báo các biến cần dùng
     HANDLE hFile;
     HANDLE hAppend;
     DWORD dwBytesRead, dwBytesWritten, dwPos;
     char buff[4096];
     // Mở file one.txt đã có sẵn
     hFile = CreateFile("ONE.TXT", // open ONE.TXT
     GENERIC_READ, // open for reading
     0, // do not share
     NULL, // no security
     OPEN_EXISTING, // existing file only
     FILE_ATTRIBUTE_NORMAL, // normal file
     NULL); // no attr. template
     
     //kiểm tra kết quả
     if (hFile == INVALID_HANDLE_VALUE) {
     ErrorHandler("Could not open ONE."); // process error
     }
     
     //Mở file two.txt, nếu chưa có thì tạo mới
     hAppend = CreateFile("TWO.TXT", // open TWO.TXT
     GENERIC_WRITE, // open for writing
     0, // do not share
     NULL, // no security
     OPEN_ALWAYS, // open or create
     FILE_ATTRIBUTE_NORMAL, // normal file
     NULL); // no attr. template
     
     //kiểm tra kết quả
     if (hAppend == INVALID_HANDLE_VALUE) {
     ErrorHandler("Could not open TWO."); // process error
     }
     
     //Đọc nội dung file one.txt rồi ghi vào cuối file two.txt
     //Có khóa file two.txt để cấm ứng dụng khác truy xuất trong lúc ghi dữ liệu
     //Rồi mở khóa sau khi hoạt động ghi hoàn thành
     do {
     //lặp đọc từng khối 4096 byte dữ liệu
     if (ReadFile(hFile, buff, 4096, &dwBytesRead, NULL)) {
     dwPos = SetFilePointer(hAppend, 0, NULL, FILE_END);
     LockFile(hAppend, dwPos, 0, dwPos + dwBytesRead, 0);
     WriteFile(hAppend, buff, dwBytesRead,&dwBytesWritten, NULL);
     UnlockFile(hAppend, dwPos, 0, dwPos + dwBytesRead, 0);
     }
     } while (dwBytesRead == 4096);
     
     // Đóng cả 2 file lại
     CloseHandle(hFile);
     CloseHandle(hAppend);
    Theo PCWORLD VN


 

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Trả lời: 0
    Bài mới gởi: 21-10-2021, 04:15 PM
  2. Làm sao cho hình sản phẩm đều nhau
    By minhthai in forum Template
    Trả lời: 0
    Bài mới gởi: 06-06-2012, 10:02 AM
  3. cùng nhau thư giản một tí
    By oahqvan8011 in forum Góc thư giãn
    Trả lời: 0
    Bài mới gởi: 11-08-2010, 03:37 PM
  4. Đối nhau
    By ..::Songuku95::.. in forum Truyện cười
    Trả lời: 0
    Bài mới gởi: 11-11-2009, 12:34 PM
  5. Kiểm tra hai file có trùng nhau không
    By Cuni in forum Visual Basic / Visual Basic.NET
    Trả lời: 0
    Bài mới gởi: 10-09-2009, 10:00 AM

Tags for this Thread

Bookmarks

Quuyền Hạn Của Bạn

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