2009-09-28 15 views
10

मुझे sysDesk लॉग फ़ाइल बनाने की आवश्यकता है। इस आवश्यकता में मुझे एक एक्सएमएल फाइल बनाना है, जिसमें तत्वों के बीच कुछ स्थानों में बाइनरी नल कैरेक्टर होता है।बाइनरी नल कैरेक्टर क्या है?

क्या कोई मुझे कृपया समझा सकता है, सबसे पहले बाइनरी नल कैरेक्टर क्या है, और मैं एक टेक्स्ट फ़ाइल में कैसे लिख सकता हूं?

+0

बस स्पष्ट करने के लिए, आप चाहते हैं कि यह कुछ विशेष फ़ाइल प्रकार और _not_ एक अच्छी तरह से बनाई गई XML फ़ाइल हो? –

+0

@ हेंक, संरचना एक्सएमएल की तरह दिखती है, लेकिन इसे सिडसेक द्वारा पचाने जा रहा है, इसलिए मुझे लगता है कि आप सही हैं, यह अच्छी तरह से गठित नहीं किया जाएगा। –

उत्तर

26

मुझे संदेह है कि इसका मतलब यूनिकोड यू +0000 है। हालांकि, यह not a valid character in an XML file है ... आपको यह देखना चाहिए कि क्या वास्तव में आवश्यक चीज़ों को पूरा करने के लिए आप फ़ाइल स्वरूप का एक बहुत स्पष्ट विनिर्देश प्राप्त कर सकते हैं। नमूना फ़ाइलें भी उपयोगी होगा :)

टिप्पणियाँ तो अन्य उत्तर के एक जोड़े को संबोधित करने के क्षण में मुझे असफल रहे हैं,:

  • यह सी # में एक स्ट्रिंग समाप्ति चरित्र, सी # नहीं है के रूप में नहीं है शून्य-समाप्त तारों का उपयोग करें। वास्तव में, सभी .NET तार इंटरऑप के लिए शून्य-समाप्त हो गए हैं, लेकिन अधिक महत्वपूर्ण रूप से लंबाई स्वतंत्र रूप से संग्रहीत की जाती है। विशेष रूप से, एक सी # स्ट्रिंग पूरी तरह से वैध एक अशक्त चरित्र यह समाप्त बिना शामिल कर सकते हैं:

    string embeddedNull = "a\0b"; 
    Console.WriteLine(embeddedNull.Length); // Prints 3 
    
  • विधि एक अशक्त वर्ण या स्ट्रिंग प्राप्त करने के लिए rwmnau द्वारा दिए गए कुछ सरल के लिए बहुत अक्षम है। बेहतर होगा:

    string justNullString = "\0"; 
    char justNullChar = '\0'; 
    
+0

हाय जॉन, यदि आपको मौका मिलता है, तो क्या इसका मतलब है कि मुझे स्पष्ट रूप से एक शून्य टर्मिनेटर को परिभाषित करने की आवश्यकता नहीं है, क्योंकि सभी सी # तार पहले से ही समाप्त हो चुके हैं? –

+1

जेएल: सी # तारों को इंटरऑप (कम से कम एमएस सीएलआर पर) के लिए स्मृति में * निरंतर समाप्त किया जाना चाहिए, लेकिन वे वास्तव में उन पात्रों के संदर्भ में समाप्त नहीं हो सकते हैं जिन्हें आप वास्तव में प्राप्त कर सकते हैं। चाहे आप को परिभाषित करने की स्पष्ट रूप से आवश्यकता हो या नहीं, आप जो करने की कोशिश कर रहे हैं उस पर निर्भर करेंगे - यदि आप तारों को सीमित करने की कोशिश कर रहे हैं, तो आपको * कुछ * प्रकार के डिलीमीटर की आवश्यकता होगी। –

10

एक द्विआधारी अशक्त चरित्र सिर्फ 0.

के एक पूर्णांक/ASCII मूल्य के साथ एक चार आप या Convert.ToChar(0) साथ एक अशक्त चरित्र और अधिक आम है, और अधिक अच्छी तरह से मान्यता प्राप्त '\0' बना सकते हैं।

+0

या बस 'var x = (char) 0; '; –

2

एक बाइनरी नल चरित्र वह है जो सभी शून्य (हेक्स में 0x00) है। आप लिख सकते हैं:

System.Text.Encoding.ASCII.GetChars(new byte[] {00}); 

इसे सी # में प्राप्त करने के लिए।

2

अशक्त चरित्र विशेष वर्ण कि U + 0000 (सभी शून्य बिट्स द्वारा इनकोडिंग) का प्रतिनिधित्व करती है। "This string ends with a null character.\0" में, भागने अनुक्रम \0 द्वारा शून्य चरित्र का प्रतिनिधित्व सी # में किया गया है।

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