/// <summary> /// Convert byte array to DataTable in string view /// </summary> /// <param name="option">2 for show '\r' and '\n'</param> private DataTable Arr_to_strDT(string str, ViewDataOption option) { DataTable dt = new DataTable(); if (str == null) { return(dt); } for (int i = 0; i < this.bytes_per_row; ++i) { dt.Columns.Add("" + i); } DataRow row = null; for (int i = 0; i < str.Length; ++i) { int id = i % this.bytes_per_row; if (id == 0) { row = dt.Rows.Add(); } if (option == ViewDataOption.RawView_strLine) { char c = str[i]; if (c == '\n') { row[id] = "\\n"; } else if (c == '\r') { row[id] = "\\r"; } else { row[id] = c; } } else { row[id] = str[i]; } } return(dt); }
/// <summary> /// Set data source for view byte array /// </summary> /// <param name="option">0 for row by row view, 1 or 2 for raw view</param> public void Set_notePad_dataSource(byte[] arr, ViewDataOption option = ViewDataOption.None) { if (arr == null) { return; } string str = Encoding.UTF8.GetString(arr); this.Set_notePad_dataSource(str); if (option == ViewDataOption.RawView) { this.main_ultraGrid.DataSource = this.Arr_to_rawDT(arr); } else if (option == ViewDataOption.Row_by_Row) { this.main_ultraGrid.DataSource = this.Arr_to_lineDT(str); } else if (option == ViewDataOption.RawView_str || option == ViewDataOption.RawView_strLine) { this.main_ultraGrid.DataSource = this.Arr_to_strDT(str, option); } }