कहें कि मेरे पास एक bzip2 फ़ाइल (5GB से अधिक) है, और मैं केवल ब्लॉक #x को डिकंप्रेस करना चाहता हूं, क्योंकि मेरा डेटा है (ब्लॉक हर बार अलग होता है)। यह मैं कैसे करूंगा?केवल एक विशिष्ट bzip2 ब्लॉक
मैंने सभी ब्लॉकों के सूचकांक बनाने के बारे में सोचा था, फिर फ़ाइल से मुझे आवश्यक ब्लॉक को काट दें और इसमें bzip2recover लागू करें।
मैंने एक समय में 1 एमबी को संपीड़ित करने के बारे में भी सोचा, फिर इसे फ़ाइल में जोड़ना (और स्थान रिकॉर्ड करना), और जब मुझे इसकी ज़रूरत होती है तो फ़ाइल को पकड़ लेना, लेकिन मैं मूल bzip2 फ़ाइल को बरकरार रखना चाहता हूं।
मेरी पसंदीदा भाषा रुबी है, लेकिन किसी भी भाषा का समाधान मेरे द्वारा ठीक है (जब तक मैं सिद्धांत को समझता हूं)।
एसआईसी! ब्लॉक स्टार्ट बाइट सीमा नहीं हो सकता है :(बिट विस्थापन और मूल डेटा ब्लॉक आकारों के आकार प्राप्त करने के लिए "seek-bzip2" में एक bzip-table प्रोग्राम शामिल है। – osgx
दुर्भाग्य से, "bzip-table" लगभग समान है वास्तविक डिकंप्रेसिंग के रूप में गति :(। यह लगभग पूर्ण डिकंप्रेस चक्र करता है, लेकिन सीआरसी की जांच न करें। – osgx
इसके अलावा, जेफ गिलक्रिस्ट द्वारा पीबीजीआईपी 2 की तरह समानांतर बिज़िप्स पर नज़र डालें। समानांतर डिकंप्रेशन में इसे ब्लॉक हेडर खोजने की आवश्यकता है। कोड: http://www.google.com/codesearch/p?hl=hi#calSvFpbfuI/trunk/trunk/demo/pbzip2-1.0.2/pbzip2.cpp&q=pbzip2&sa=N&cd=2&ct=rc&l=3 'producer_decompress' फ़ंक्शन – osgx