2013-03-05 32 views
18

Chúng tôi đã viết một phạm vi dữ liệu thô.ToString ("X") tạo ra các số hex đơn số

(Các chương trình phần mềm miễn phí thiết bị đầu cuối, chúng tôi thấy không thể theo kịp với tốc độ Bluetooth)

Kết quả là được rồi, và chúng tôi đang viết chúng vào một Comma tách tập tin để sử dụng với một bảng tính. Nó sẽ là tốt hơn để xem các giá trị hex xếp hàng trong các cột đẹp trong RichTextBox thay vì cách nó trông bây giờ (Screen cap nối thêm).

Đây là quy trình bổ sung các chữ số (ví dụ: số từ 0 đến FF) vào văn bản trong RichTextBox.

public void Write(byte[] b) 
     { 
      if (writting) 
      { 
       for (int i = 0; i < b.Length; i++) 
       { 
        storage[sPlace++] = b[i]; 

        pass += b[i].ToString("X") + " "; //// <<<--- Here is the problem 

        if (sPlace % numericUpDown1.Value == 0) 
        { 
         pass += "\r\n"; 
        } 
       } 
      } 
     } 

Tôi muốn một cách để hướng dẫn pass += b[i].ToString("X") + " "; để sản xuất một số không hàng đầu về giá trị từ 00h để 0Fh

Hoặc, một số cách khác để biến các giá trị trong byte b thành hai ký tự chữ từ 00 để FF

enter image description here

chữ số ở bên trái, FF 40 0 5 Xếp hàng đẹp và gọn gàng, vì chúng giống hệt nhau. Ngay sau khi chúng tôi gặp phải bất kỳ sự khác biệt nào về dữ liệu, các cột biến mất và dữ liệu trở nên cực kỳ khó đọc với quan sát của con người.

Trả lời

39

Sử dụng một chuỗi định dạng composite:

pass += b[i].ToString("X2") + " "; 

Các tài liệu trên MSDN, Standard Numeric Format Strings có ví dụ.

+0

Siêu. Thiên tài. 1 và câu trả lời. Cảm ơn –

+4

@ User.1 '0.ToString (" X2 ")' tạo '00'. '2' có nghĩa là bao nhiêu ký tự xuất ra (đệm với' 0 '). – Oded

+2

Tôi nhận được câu trả lời này, nhưng nó không giải quyết được vấn đề bằng cách sử dụng phông chữ không đơn điệu, chẳng hạn như Consolas hoặc Courier New. – Tim

Các vấn đề liên quan