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

Đề tài: BinaryWriter ghi sai byte vào file

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

    Mặc định BinaryWriter ghi sai byte vào file

    Em dùng BinaryWriter để ghi file data.
    C++ Code:
    1. SaveFileDialog^ tSave = gcnew SaveFileDialog;
    2. tSave->Filter = "Tasks File (Tasks.*)|tasks.*|AllFile (*.*)|*.*";
    3. if (tSave->ShowDialog() == System::Windows::Forms::DialogResult::OK){
    4.     progressBar1->Maximum = Convert::ToInt32(label4->Text);
    5.     FileStream^ fs = File::OpenWrite(tSave->FileName);
    6.     BinaryWriter^ br = gcnew BinaryWriter(fs);
    7.     UnicodeEncoding^ unicode = gcnew UnicodeEncoding;
    8.     br->Write(Convert::ToInt32(label2->Text));
    9.     br->Write(Convert::ToInt32(label4->Text));
    10.     for (int i=0; i<Convert::ToInt32(label4->Text); i++){
    11.         br->BaseStream->Seek(8+i*4, SeekOrigin::Begin);
    12.         br->Write(Convert::ToInt32(dataGridView1->Rows[i]->Cells[0]->Value));
    13.         br->BaseStream->Seek(Convert::ToInt32(dataGridView1->Rows[i]->Cells[0]->Value), SeekOrigin::Begin);
    14.         br->Write(Convert::ToInt32(dataGridView1->Rows[i]->Cells[1]->Value));
    15.         br->Write(unicode->GetBytes(Convert::ToString(dataGridView1->Rows[i]->Cells[2]->Value)));
    16.         br->Write(unicode->GetBytes(Convert::ToString(dataGridView1->Rows[i]->Cells[3]->Value)));
    17.         progressBar1->Value = i;
    18.     }
    19. }
    Khi nó ghi một số Int32 cụ thể là 1479971381 ở đoạn br->Write(Convert::ToInt32(label2->Text)) thì trong file thành 00 00 00 00;
    Rất nhiều đoạn 2 byte khác (đổi ra Int16 nó ở khoảng >40000) thì bị bug và ghi thành FD FF (65533).
    Ai giúp em fix cái bug này được không.
    Đã được chỉnh sửa lần cuối bởi djjamesbond93 : 01-08-2011 lúc 08:03 PM.

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

  1. Cách truyền dữ liệu mảng byte qua cổng com và ghi dữ liệu về file ban đầu?
    Gửi bởi huyhung2702 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 24-12-2012, 12:28 PM
  2. Lập trình C chia số 2 byte cho số 1 byte và cho kết quả thương là số 2 byte và phần dư là số 1 byte
    Gửi bởi sakurai111 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 17-11-2012, 10:58 PM
  3. Cách đọc file ảnh thành từng byte?
    Gửi bởi HUMG.ThongIT trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 15
    Bài viết cuối: 12-12-2011, 10:27 AM
  4. Mở một file từ Byte[] mà ko cho save?
    Gửi bởi meomeomeo trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 17-10-2011, 03:36 PM
  5. Đọc 45 byte đầu của 1 File exe mà sao chỉ được có 3 Byte
    Gửi bởi cSharp trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 08-02-2009, 10:25 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