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

Đề tài: đọc nội dung Flie đưa ra màn hình ở dạng nhị phân ngược

  1. #1
    Ngày gia nhập
    09 2011
    Bài viết
    129

    Mặc định đọc nội dung Flie đưa ra màn hình ở dạng nhị phân ngược

    Các Pro giúp mình với!
    Mình muốn đọc nội dung file sau đó đưa ra màn hình nội dung file đó nhưng ở dạng nhị phân ngược VD 5=10100000..chú ý đến tốc độ sao cho càng nhanh càng tốt
    Attached Files Attached Files

  2. #2
    Ngày gia nhập
    11 2008
    Nơi ở
    An Giang
    Bài viết
    502

    File của bạn có phần mở rộng là *.004.
    Phần mở rộng này thì theo mình biết thì C# ko có hỗ trợ đọc được nội dung trong đó.

  3. #3
    Ngày gia nhập
    03 2009
    Bài viết
    267

    Trích dẫn Nguyên bản được gửi bởi huuhung Xem bài viết
    File của bạn có phần mở rộng là *.004.
    Phần mở rộng này thì theo mình biết thì C# ko có hỗ trợ đọc được nội dung trong đó.
    Mình nghĩ đc bạn ạ, C# có thẻ đọc được tất cả các file và đưa ra dạng nhị phân của nó nhưng ko thể hiện đc nội dung của nó thôi.

    Code:
    public static byte[] GetBytesFromFile(string fullFilePath)
    {
    	// this method is limited to 2^32 byte files (4.2 GB)
    
    	FileStream fs = 	File.OpenRead(fullFilePath);
    	try
    	{
    		byte[] bytes = new byte[fs.Length];
    		fs.Read(bytes, 0, Convert.ToInt32(fs.Length));
    		fs.Close();
    		return bytes;
    	}
    	finally
    	{
    		fs.Close();
    	}
    
    }

  4. #4
    Ngày gia nhập
    09 2011
    Bài viết
    129

    Trích dẫn Nguyên bản được gửi bởi huuhung Xem bài viết
    File của bạn có phần mở rộng là *.004.
    Phần mở rộng này thì theo mình biết thì C# ko có hỗ trợ đọc được nội dung trong đó.
    Thực ra cái mình hỏi chỉ là 1 khâu trong bài toán mình cần giải quyết..bước trên mình cũng làm được rồi nhưng tốc độ thì khá chậm, phải mất đến 20s mới load xong mất huc..mình muốn hỏi xem có cách nào thao tác với file dung lượng lớn như vậy mà vẫn đảm bảo tốc độ không?? Thaks bạn!

  5. #5
    Ngày gia nhập
    09 2011
    Bài viết
    129

    Trích dẫn Nguyên bản được gửi bởi nhokviet Xem bài viết
    Mình nghĩ đc bạn ạ, C# có thẻ đọc được tất cả các file và đưa ra dạng nhị phân của nó nhưng ko thể hiện đc nội dung của nó thôi.

    Code:
    public static byte[] GetBytesFromFile(string fullFilePath)
    {
    	// this method is limited to 2^32 byte files (4.2 GB)
    
    	FileStream fs = 	File.OpenRead(fullFilePath);
    	try
    	{
    		byte[] bytes = new byte[fs.Length];
    		fs.Read(bytes, 0, Convert.ToInt32(fs.Length));
    		fs.Close();
    		return bytes;
    	}
    	finally
    	{
    		fs.Close();
    	}
    
    }
    Hì cám ơn bạn mình nhất trí là C# đọc được tất cả các file nhưng cái mình muốn là nhị phân viết ngược VD 5=10100000 kia...hiện ra là để kiểm tra thôi ngay cả khi bạn không hiện nó lên màn hình thì máy bạn cũng sẽ có thể coi là đơ 1 lúc khi nó đọc file chính vì thế lúc này mình muốn tìm xem có thuật toán hay công cụ gì mới để tăng tốc độ đọc file đó nhanh hơn không

  6. #6
    Ngày gia nhập
    03 2009
    Bài viết
    267

    Mặc định đọc nội dung Flie đưa ra màn hình ở dạng nhị phân ngược

    Theo mình nghĩ muốn nhanh thì fải dùng đa luồng, và bạn chia nhỏ 1 file ra và mỗi luồng đọc 1 phần.
    Ở câu lệnh
    fs.Read(bytes, 0, Convert.ToInt32(fs.Length));
    Mình nghĩ cái bôi đen là độ dài bạn muốn đọc.
    vd mình có 2 luồng thì luồng thứ 1 đọc từ 0 đến Convert.ToInt32(fs.Length)/2, còn luồng thứ 2 đọc từ Convert.ToInt32(fs.Length)/2 đến hết

    Thay vì 2 luồng bạn có thể tăng thêm để có thể sử dụng đc hết công suất của chip

  7. #7
    Ngày gia nhập
    09 2011
    Bài viết
    129

    Trích dẫn Nguyên bản được gửi bởi nhokviet Xem bài viết
    Theo mình nghĩ muốn nhanh thì fải dùng đa luồng, và bạn chia nhỏ 1 file ra và mỗi luồng đọc 1 phần.
    Ở câu lệnh
    fs.Read(bytes, 0, Convert.ToInt32(fs.Length));
    Mình nghĩ cái bôi đen là độ dài bạn muốn đọc.
    vd mình có 2 luồng thì luồng thứ 1 đọc từ 0 đến Convert.ToInt32(fs.Length)/2, còn luồng thứ 2 đọc từ Convert.ToInt32(fs.Length)/2 đến hết

    Thay vì 2 luồng bạn có thể tăng thêm để có thể sử dụng đc hết công suất của chip
    ý tưởng khá hay..mình cũng từng nghĩ sẽ chia nhỏ để trị okie mình sẽ thử cách này xem sao. Có điều mấy bước sau mình cần thực hiện 1 vài thao tác tìm rồi cắt trong file đó sợ nếu chia nhỏ ra như vậy sẽ ảnh hưởng tới kết quả chung. mà nếu làm như bình thường tức tương tác trực tiếp với file thì sẽ vô cùng chậm..mình đã làm và test thử ..với file dung lượng dưới 1Mb thì bài toán của mình okie nhưng nếu là file 9Mb này thì bước cuối cùng chắc phải ngồi đợi đến hàng chục phút nếu bạn muốn thử mình sẽ nói chi tiết bài toán hơn ^^ ..Thaks bạn!

  8. #8
    Ngày gia nhập
    03 2009
    Bài viết
    267

    Trích dẫn Nguyên bản được gửi bởi tientrungkaka Xem bài viết
    ý tưởng khá hay..mình cũng từng nghĩ sẽ chia nhỏ để trị okie mình sẽ thử cách này xem sao. Có điều mấy bước sau mình cần thực hiện 1 vài thao tác tìm rồi cắt trong file đó sợ nếu chia nhỏ ra như vậy sẽ ảnh hưởng tới kết quả chung. mà nếu làm như bình thường tức tương tác trực tiếp với file thì sẽ vô cùng chậm..mình đã làm và test thử ..với file dung lượng dưới 1Mb thì bài toán của mình okie nhưng nếu là file 9Mb này thì bước cuối cùng chắc phải ngồi đợi đến hàng chục phút nếu bạn muốn thử mình sẽ nói chi tiết bài toán hơn ^^ ..Thaks bạn!
    :| bạn nói thế nào chứ 9MB mà đến hàng chục phút :|, cái IDM cũng dựa trên cách tạo nhiều tiến trình down và cắt nhỏ file ra thôi. cậu muốn biết nó làm việc thế nào thì dùng WPE bắt gói tin của IDM khi down, sẽ thấy đc cách làm việc của nó

  9. #9
    Ngày gia nhập
    09 2011
    Bài viết
    129

    Trích dẫn Nguyên bản được gửi bởi nhokviet Xem bài viết
    :| bạn nói thế nào chứ 9MB mà đến hàng chục phút :|, cái IDM cũng dựa trên cách tạo nhiều tiến trình down và cắt nhỏ file ra thôi. cậu muốn biết nó làm việc thế nào thì dùng WPE bắt gói tin của IDM khi down, sẽ thấy đc cách làm việc của nó
    hì cũng không tới hàng chục nhưng cũng tới hơn 10' ,CPU hoạt động là 100% huc bạn tính ai mà ngồi đợi kiểu đó đc (ah đó là bước cuối trong bài toán của mình chú không phải time đợi đọc file và chuyển nhị phân đâu..cái này chắc chỉ hơn 1' thui) mà file mình ví dụ là 9Mb nhưng mình muốn chương trình có thể chạy các file khác lớn hơn nữa kia..okie mình sẽ tìm hiểu theo gợi ý của bạn xem sao..Thaks nha!

    ah mình xin nói qua 1 số bước mình đang muốn làm như sau:
    B1: Đọc file VD và đưa nội dung file về dạng nhi phân viết ngược (Hiện lên màn hình để kiểm tra xem đúng ko)
    B2: Tìm trạng thái đầu tiên trong kết quả của bước 1 xuất hiện xâu gọi là xâu X=:"0000000000000000101110111010000000001100001000 10". Sau khi tìm được nó thì xoá hết các bit đứng trước xâu đó.
    B3: Bước này xoá hết các xâu có dạng X cho tới khi xuất hiện xâu khác dạng X thì dừng lại. Tại thời điểm này ta ghi lại các bit cho tới khi xuất hiện xâu X thì dừng không ghi lại nữa.
    B4: Làm như bước 3 cho tới hết file.
    sau khi các Pro giúp mình làm được tới bước đó mình sẽ nói típ ^^

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

  1. Đọc flie.srt ( phụ đề ) hiển thị ra textview!
    Gửi bởi hoanganhcuong87 trong diễn đàn Lập trình Android và Java Mobile
    Trả lời: 0
    Bài viết cuối: 26-07-2013, 08:26 AM
  2. Lập trình C mở 1 flie tương tự click chuột trái trong C
    Gửi bởi giang92 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 11-01-2012, 08:31 PM
  3. dung lượng cấp phát cho bộ nhớ có liên quan đến dung lượng ram?
    Gửi bởi alisson trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 14
    Bài viết cuối: 10-05-2011, 12:50 AM
  4. Sử dung các flie WebUserControl và Global.asax như thế nào
    Gửi bởi congtuazx trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 10-01-2011, 04:08 PM
  5. không thể hiển thị nội dung chứa unicode or nội dung đặt trong thẻ của textbox
    Gửi bởi thuanduong trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 27-11-2010, 10:13 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