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

Đề tài: WIN32API có hàm nào so sánh Dữ Liệu của 2 File không

  1. #1
    Ngày gia nhập
    01 2009
    Bài viết
    64

    Red face WIN32API có hàm nào so sánh Dữ Liệu của 2 File không

    Mình có 2 File,File thứ 1 có chứa toàn bộ Mã Nhị Phân của File thứ 2,bây giờ có hàm API nào để kiểm tra được File thứ 1 có chứa File thứ 2 trong nó hay không???
    ( giống như hàm strstr khi so sánh 2 chuỗi số với nhau ấy )
    và nếu khong có hàm nào như vậy thì anh em cho mình thuật toán để kiểm tra nhé,Mình định dùng chuối nhưng trong File exe hay dính ký tự NULL quá nên không được

  2. #2
    Ngày gia nhập
    01 2009
    Bài viết
    64

    Mình đọc thấy có bài viết ở đâyhttp://forums.congdongcviet.com/showpost.php?p=12664&postcount=9 có 2 hàm CreateFileMapping và MapViewOfFile Có thể lấy được mã Nhị phân của File exe ,không rõ có đúng không nữa

  3. #3
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Muốn đọc nhị phân thì có 2 cách :
    - Dùng hàm của C++, khi mở file dùng mode "rb" thì sẽ đọc được nhị phân.
    - Dùng hàm api ReadFile

    Nói chung, để thực hiện được việc so sánh 2 file ta phải có một mảng char lưu nội dung của file và dùng vòng for kiểm tra hết chiều dài của mảng. Nếu file quá lớn thì ta nạp từng phần và kiểm tra trên từng phần đó.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  4. #4
    Ngày gia nhập
    01 2009
    Bài viết
    64

    Nói chung, để thực hiện được việc so sánh 2 file ta phải có một mảng char lưu nội dung của file và dùng vòng for kiểm tra hết chiều dài của mảng. Nếu file quá lớn thì ta nạp từng phần và kiểm tra trên từng phần đó.
    hic,mình cũng nghĩ là phải vòng for,nhưng khổ nỗi nhiều File exe có chứa NULL ngay trong bản thân nó nên khó mà dùng chuỗi được http://forums.congdongcviet.com/show...64&postcount=9

  5. #5
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Trích dẫn Nguyên bản được gửi bởi cSharp Xem bài viết
    hic,mình cũng nghĩ là phải vòng for,nhưng khổ nỗi nhiều File exe có chứa NULL ngay trong bản thân nó nên khó mà dùng chuỗi được http://forums.congdongcviet.com/show...64&postcount=9
    Bạn dùng mảng char để làm buffer thì đâu sợ ký tự null
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  6. #6
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Mặc định WIN32API có hàm nào so sánh Dữ Liệu của 2 File không

    ủa cái này mới đọc đâu đó mà ? 2 bài à ?

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

    Mình nghĩ ra rồi,dùng mảng lưu từng ký tự đọc đươc bằng hàm File.get(ch[i])
    sau đó lưu số byte đọc được vào,và duyệt nó,không thể duyệt chuỗi được vì strlen nó chỉ tính được số ký tự đạt trước ký tự NULL thôi

  8. #8
    Ngày gia nhập
    10 2007
    Bài viết
    9

    mình nghỉ không có hàm kiểu đó đâu bạn

    bạn thử áp dụng những thuật toán so sánh chuổi trong cấu trúc dữ liệu thử xem. code các thuật toán đó hầu hết có trên google đó

    chào bạn

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

  1. Edit file with C or Win32api without change "date modified" field ???
    Gửi bởi mfc trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 15-04-2011, 07:48 PM
  2. [help] Chương trình Win32API
    Gửi bởi Socket trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 0
    Bài viết cuối: 16-11-2010, 02:55 PM
  3. Lập trình win32API. Hướng dẫn cách tắt màn Hình
    Gửi bởi AlexF trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 07-07-2010, 05:02 PM
  4. Làm sao sử dụng GDI+ với Win32API application
    Gửi bởi Tadius trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 7
    Bài viết cuối: 28-06-2010, 08:31 AM
  5. WIN32API sửa lỗi ứng dụng chát
    Gửi bởi trần trân trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 9
    Bài viết cuối: 23-03-2009, 12:57 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