2013-03-05 13 views
18

उत्पन्न करता है हमने एक कच्चे डेटा दायरे को लिखा है।ToString ("X") एकल अंक हेक्स संख्या

परिणाम ठीक हैं (फ्रीवेयर टर्मिनल कार्यक्रमों हमने पाया ब्लूटूथ गति के साथ बनाए रखने में असमर्थ थे), और हम उन्हें लिख रहे हैं करने के लिए एक अल्पविराम एक स्प्रेडशीट साथ प्रयोग के लिए फ़ाइल अलग कर दिया। रिचटेक्स्टबॉक्स में अच्छे कॉलम में हेक्स वैल्यू लाइन को देखना बेहतर होगा, जिस तरह से यह दिखता है (स्क्रीन कैप संलग्न)।

यह वह दिनचर्या है जो अंक (उदा। 0 से FF तक) 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"; 
        } 
       } 
      } 
     } 

मैं अनुदेश pass += b[i].ToString("X") + " "; के लिए एक तरह से मूल्यों पर एक अग्रणी शून्य 00h से 0Fh

या, करने के लिए किसी अन्य तरीके से करने के लिए 00 से दो वर्णमाला अक्षरों में बाइट b में मूल्य चालू करने के लिए निर्माण करने के लिए चाहते हैं FF

enter image description here

अंक छोड़ दिया पर, FF 40 0 5 अच्छी और अच्छी तरह से लाइन करें, क्योंकि वे समान हैं। जैसे ही हमें डेटा में कोई अंतर होता है, कॉलम गायब हो जाते हैं और डेटा मानव अवलोकन के साथ पढ़ने में बेहद मुश्किल हो जाता है।

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

MSDN पर प्रलेखन, Standard Numeric Format Strings उदाहरण है:

उत्तर

39

एक composite प्रारूप स्ट्रिंग का उपयोग करें।

+0

सुपर। प्रतिभा। +1 और उत्तर। धन्यवाद –

+4

@ उपयोगकर्ता.1 '0. टॉस्ट्रिंग (" एक्स 2 ")' '00' का उत्पादन करता है। '2' का अर्थ है आउटपुट के कितने अक्षर (' 0 के साथ पैडिंग)। – Oded

+2

मुझे यह जवाब मिलता है, लेकिन यह एक ऐसे फ़ॉन्ट का उपयोग करने की समस्या का समाधान नहीं करता है जो मोनोस्पेस्ड नहीं है, जैसे कि कंसोलस या कूरियर न्यू। – Tim

संबंधित मुद्दे