सर्वोत्तम दृष्टिकोण बाइनरी फ़ाइल के प्रारूप पर निर्भर करता है।
कई बाइनरी प्रारूपों को पार्सिंग को आसान बनाने के लिए डिज़ाइन किया गया है (टेक्स्ट प्रारूपों के विपरीत जो मुख्य रूप से मनुष्यों द्वारा पढ़ा जा सकता है)। तो किसी भी यूनियन डेटा प्रकार से पहले एक भेदभावकर्ता द्वारा किया जाएगा जो आपको बताता है कि किस प्रकार की अपेक्षा की जा सकती है, सभी फ़ील्ड या तो निश्चित लंबाई या लंबाई क्षेत्र से पहले हैं, और इसी तरह। इस तरह के डेटा के लिए मैं डेटा की सिफारिश करेंगे। बाइनरी; आम तौर पर आप फ़ाइल में प्रत्येक प्रकार के लिए एक मिलान हास्केल डेटा प्रकार बनाते हैं, और उसके बाद उनमें से प्रत्येक प्रकार बाइनरी का उदाहरण बनाते हैं। पढ़ने के लिए "प्राप्त करें" विधि को परिभाषित करें; यह एक "गेट" मोनैड एक्शन देता है जो मूल रूप से एक बहुत ही सरल पार्सर होता है। आपको "डाल" विधि को परिभाषित करने की भी आवश्यकता होगी।
दूसरी ओर यदि आपका बाइनरी डेटा इस तरह की दुनिया में फिट नहीं है तो आपको एटोपारसेक की आवश्यकता होगी। मैंने कभी इसका उपयोग नहीं किया है, इसलिए मैं आगे टिप्पणी नहीं कर सकता, लेकिन this blog post बहुत सकारात्मक है।
स्रोत
2010-03-11 18:20:41
वह पारसी टेक्स्ट में है। पैरासेक का तात्पर्य यह मुख्य रूप से टेक्स्ट के लिए है, बाइनरी नहीं, है ना? बाइटस्ट्रिंग्स के लिए भी, यह केवल स्ट्रीम और चार का एक उदाहरण बनाता है। आपका क्या मतलब है कि यह ठीक काम करता है? – me2