Hỏi về cắt dữ liệu file trong c#

Thảo luận trong 'C# & Winform' bắt đầu bởi longnguyenvan, 6/5/15.

  1. longnguyenvan Thành Viên Mới

    Các tiền bối cho em hỏi: em viết 1 đoạn code mục đích là đọc dữ liệu của 1 file text, sau đó cắt thành từng khối 512 bit và truyền từng khối bit đó sang kit. Nhưng em chưa biết đọc dữ liệu dạng binary và cắt thành từng khối thế nào? Mong mọi người giúp đỡ :(
    const Int64 MaxSize = 150;
    // UInt32 number_filr_write;
    Int64 file_size = 0;
    Int64 block_remain_send, block_remain_receive;
    int number_block = 0;
    const Int32 byte_of_block = 512;
    Int32 byte_remain = 0;
    byte byte_remain8 = 0;
    private UsbDevice mUsbDevice;
    private UsbEndpointReader mEpReader;
    // private UsbEndpointReader mEpReader;
    private UsbEndpointWriter mEpWriter;
    private string mLogFileName = String.Empty;
    //private FileStream mLogFileStream;
    private UsbRegDeviceList mRegDevices;

    private void btSelect_Click(object sender, EventArgs e)
    {
    string arr = "";
    OpenFileDialog dlg = new OpenFileDialog();
    dlg.Title = "Select File...";
    dlg.Filter = "Text documents (*.txt)|*.txt|All Files|*.*";
    dlg.Multiselect = false;
    //string str;
    //arr = File.ReadAllText(dlg.FileName);
    if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
    // arr = File.ReadAllText(dlg.FileName);
    FileInfo aFile = new FileInfo(dlg.FileName);
    file_size = aFile.Length;
    //-----------them bot dc-------------------------------------------------------------
    block_remain_send = block_remain_receive = number_block = (int)(file_size / byte_of_block);
    byte_remain = (int)(file_size % byte_of_block);
    byte_remain8 = (byte)(byte_remain % 8);
    //---------- co the them bot ---------------------------------------------------------
    if (aFile.Length <= 0)
    {
    System.Windows.Forms.MessageBox.Show("file soure khong co du lieu");
    }

    if (number_block > MaxSize)
    {
    System.Windows.Forms.MessageBox.Show("File too big, chon file nho hon 2MB");

    }
    else
    {
    // this.tSourceBox.Text = File.ReadAllText(arr);
    // this.tSourceBox.Text = arr;
    this.tSourceBox.Text = File.ReadAllText(dlg.FileName);
    this.txtPath.Text = dlg.FileName;
    }

    }
    }
    private void cmdWrite_Click(object sender, EventArgs e)
    {
    cmdWrite.Enabled = false;
    string strBlock = "";
    string strTem = "";
    string[] strTemp = new string[10000];
    strBlock = tSourceBox.Text.Trim();
    int i, j, k = 64, l = 1;
    int uiTransmitted;
    //------adder-------------------------
    // string strBlock = "";
    // string [] strTemp = new string[1000];
    // strBlock = tSourceBox.Text.Trim();
    // int i;
    // strTemp = strBlock.Substring(0,511);
    for (i = 1; i <= strBlock.Length / 64; i++)
    {
    // strTemp = strBlock.Substring(511*i, 511*i + 511);
    // byte[] bytesToWrite = Encoding.UTF8.GetBytes(strTemp);
    //}
    for (j = l;j <= k;j++)
    {
    //strTemp[j] = strBlock.Substring(j,k);
    strTem = strBlock.Substring(j, 64);
    }
    //byte[] bytesToWrite = Encoding.UTF8.GetBytes(tSourceBox.Text);
    byte[] bytesToWrite = Encoding.UTF8.GetBytes(strTem);


    if (mEpWriter.Write(bytesToWrite, 10000, out uiTransmitted) == ErrorCode.None) // ban dau 1000
    {
    tsStatus.Text = uiTransmitted + " bytes written.";
    }
    else
    tsStatus.Text = "Write failed!";

    cmdWrite.Enabled = true;
    }
    l += 64;
    k += 64;
    j = l;
    }
    // }
     
     
    : File c#
  2. Bình Luận Bằng Facebook

  3. dotien20042005

    dotien20042005 Thành Viên Mới

    cái này thật khó những người hiểu biết vào chỉ dùm em cũng muốn biết thêm chút
     
  4. congthanhmobile

    congthanhmobile Thành Viên Mới

    e làm nhưng toàn lỗi ạ
     
  5. dichvudidong

    dichvudidong Thành Viên Mới

    Bạn thử search xem có được không, mình chỉ biết đọc ghi file bình thường trong Dotnet thôi.
     
  6. svnsofttech

    svnsofttech Thành Viên Mới

    Bạn gửi cả file lên đây để AE ktra giúp