क्या आत्मा (बूस्ट सी ++ लाइब्रेरी का हिस्सा) धारा से आने वाले बाइनरी डेटा को पार्स करने के लिए उपयोग किया जा सकता है? उदाहरण के लिए, क्या इसका उपयोग किसी सॉकेट से संरचनाओं, बाइट्स और व्यक्तिगत बिट झंडे में आने वाले डेटा को पार्स करने के लिए किया जा सकता है? धन्यवाद!आत्मा को बूस्ट स्ट्रीम डेटा को पार्स करने के लिए इस्तेमाल किया जा सकता है?
उत्तर
बूस्ट स्पिरिट template meta-programming के साथ Extended Backus–Naur Form (EBNF) सिंटैक्स का उपयोग करके एक पार्सर को परिभाषित करने की अनुमति देता है। यह बहुत लचीला है और पार्सिंग प्रक्रिया के सभी चरणों में अमूर्त कक्षाओं का उपयोग करता है जिसे अनुकूलित किया जा सकता है। बाइनरी डेटा स्ट्रीम को संसाधित करने के लिए, आपको कस्टम स्कैनर कक्षाओं को लागू करने की आवश्यकता होगी क्योंकि डिफ़ॉल्ट प्रकार टेक्स्ट इनपुट के लिए तैयार किए जाते हैं। आप Spirit User's Guide के The Scanner and Parsing अनुभाग में और पढ़ सकते हैं।
मेरी विनम्र राय में, बाइनरी डेटा धाराओं को हाथ से चलने वाले क्रमबद्ध कोड के साथ सबसे अच्छा तरीके से संभाला जाता है। आत्मा को अच्छी तरह से गठित व्याकरण जैसे मार्क-अप या स्क्रिप्टिंग भाषाओं की दिशा में अधिक तैयार किया जाता है। उदाहरण के लिए, The Complete Syntax of Lua ईबीएनएफ में प्रदान किया जाता है। तो, एक कस्टम पार्सर बनाने के लिए आत्मा का उपयोग करना समझ में आता है। दूसरी तरफ, सिंक्रनाइज़ेशन बाइट्स और सीआरसी ब्रैकेटिंग संदेशों के साथ एक मालिकाना सीरियल डेटा लिंक को ईबीएनएफ को परिभाषित करने के लिए बहुत अधिक काम की आवश्यकता होगी यदि context-free grammar इसके लिए भी मौजूद है।
परिशिष्ट
The latest version of Boost Spirit includes functionality for dealing with binary data.
Spirit2, बस जारी की है, द्विआधारी पार्स करने के लिए सुविधा नहीं है। Check out this।
बहुत अच्छा, धन्यवाद! – Brian
- 1. बूस्ट आत्मा के साथ एक व्याकरण पार्स
- 2. जीआईएस के लिए इस्तेमाल किया जा सकता है?
- 3. क्या जीएडीटी जीएचसी में टाइप असमानताओं को साबित करने के लिए इस्तेमाल किया जा सकता है?
- 4. क्या ज़ेड 3 को प्रीप्रोसेस समस्याओं के लिए इस्तेमाल किया जा सकता है?
- 5. डी में गुणों को टाइप कक्षाओं के लिए इस्तेमाल किया जा सकता है?
- 6. देरी_job मणि रेल के बाहर इस्तेमाल किया जा सकता है?
- 7. क्या ईटीडब्लू (विंडोज़ के लिए इवेंट ट्रेसिंग) मेमोरी आंकड़ों को इकट्ठा करने के लिए इस्तेमाल किया जा सकता है?
- 8. कई textareas पर codemirror इस्तेमाल किया जा सकता है?
- 9. संपादक के लिए <इनपुट प्रकार = "फ़ाइल"> बनाने के लिए इस्तेमाल किया जा सकता है?
- 10. किंडल को सोर्स कोड रीडिंग टूल के रूप में कैसे इस्तेमाल किया जा सकता है?
- 11. भौतिक विचारों को तेजी से denomalized बड़ी तालिका के रूप में इस्तेमाल किया जा सकता है?
- 12. जेटी को जावा ईई लाइटवेट एप्लिकेशन सर्वर के रूप में इस्तेमाल किया जा सकता है?
- 13. बूस्ट एएसआईओ रिएक्टर से बचने के लिए कैसे एक कोर को बाध्य किया जा रहा है?
- 14. हैश को स्ट्रिंग में परिवर्तित नहीं किया जा सकता है?
- 15. विनफॉर्म डेटा बाध्यकारी: प्रारूप/पार्स घटनाओं के बजाय टाइपकॉन्टर का उपयोग किया जा सकता है?
- 16. अमान्य यूआरआई: होस्ट नाम पार्स नहीं किया जा सकता है
- 17. क्या मोनैड हैं जिन्हें एक automaton की तरह इस्तेमाल किया जा सकता है?
- 18. एक शून्य * राज्य को बनाए रखने के लिए इस्तेमाल किया जा रहा है ... (सी प्रोग्रामिंग)
- 19. सोनार को नए नियमों को आयात करने के लिए कैसे कॉन्फ़िगर किया जा सकता है?
- 20. , इसे कब मुक्त किया जा सकता है?
- 21. डब्ल्यूपीएफ एपीआई को डब्ल्यूसीएफ सेवा में सुरक्षित रूप से इस्तेमाल किया जा सकता है?
- 22. क्यों && और || निरर्थक प्रकार के लिए इस्तेमाल नहीं किया जा सकता है?
- 23. क्या एनएसएएलर्ट फ़्लोटिंग विंडो बनाने के लिए इस्तेमाल किया जा सकता है?
- 24. कैशड्रॉवसेट: क्या इसका अभी भी परिणामसेट डेटा को पकड़ने के लिए उपयोग किया जा सकता है?
- 25. क्या पोर्टेबल तरीके से सरणी के लिए नया प्लेसमेंट इस्तेमाल किया जा सकता है?
- 26. बूस्ट :: आत्मा का उपयोग कर सरल अभिव्यक्ति पार्सर उदाहरण?
- 27. विंडोज के लिए गिटहब स्थानीय रूप से इस्तेमाल किया जा सकता है?
- 28. ओपनजीएल के लिए आईओएस 4 का पूरा 326 पीपीआई इस्तेमाल किया जा सकता है?
- 29. अंतिम ऑब्जेक्ट को संशोधित किया जा सकता है लेकिन संदर्भ चर को बदला नहीं जा सकता
- 30. जावा के साथ पैराग्राफ के लिए पार्स करने के लिए किस चरित्र का उपयोग किया जा सकता है?
क्या आप डेटा के प्रारूप पर अधिक जानकारी दे सकते हैं। क्या यह कुछ जटिल प्रारूप है? –
मुझे यह याद नहीं आया कि जब मैंने मूल रूप से यह पूछा था, लेकिन मुझे शायद एसएसएल/टीएलएस हेडर को पहचानने के साथ क्या करना पड़ा था। – Brian