2010-04-26 7 views
5

क्या मैं System.IO.Compression.DeflateStream का उपयोग कर संपीड़ित डेटा के पहले कुछ बाइट्स पर भरोसा कर सकता हूं .NET हमेशा एक जैसा है? 237, 189, 7, 96, 28, 73, 150, 37, 38, 47, ...मैं कैसे बता सकता हूं कि एक बाइट सरणी पहले ही संकुचित हो चुकी है या नहीं?

मैं इस संभालने हूँ किसी तरह का है:

इन बाइट्स हमेशा 1 बाइट्स होने लगते हैं हेडर का, मैं यह मानना ​​चाहता हूं कि यह हेडर तय है और बदलने वाला नहीं है।

क्या किसी को इसके बारे में कोई अतिरिक्त जानकारी मिली है?

पृष्ठभूमि की जानकारी (कारण मुझे पता है कि यह जानकारी है चाहता हूँ ...)

मैं एक डेटाबेस तालिका है कि छोटे बनाया जा रहा है के साथ कर सकता में डेटा का भार है। मैंने फैसला किया है कि मैं डेटा को संपीड़ित करना शुरू कर रहा हूं और मौजूदा डेटा को संपीड़ित करने के लिए परेशान नहीं होने जा रहा हूं। जब डेटा मेरे .NET कोड में आता है तो डेटा एक स्ट्रिंग होता है।

मैं स्ट्रिंग के पहले कुछ बाइट्स को देखने में सक्षम होना चाहता हूं और देख सकता हूं कि इसे संकुचित किया गया है, अगर उसके बाद मुझे इसे डी-कंप्रेसर करने की आवश्यकता है।

मैं मूल रूप से सोच रहा था कि मैं स्ट्रिंग को बाइट्स में परिवर्तित कर सकता हूं और डेटा को डी-कंप्रेस करने का प्रयास कर सकता हूं। फिर यदि कोई अपवाद होता है, तो मैं बस मान सकता हूं कि यह संकुचित नहीं हुआ था। लेकिन मुझे लगता है कि हेडर बाइट्स की जांच करने से मुझे बेहतर प्रदर्शन मिलेगा।

बहुत धन्यवाद, माइक जी

उत्तर

1

सुरक्षा के लिए (जब तक कि यह कहीं से प्रलेखित है), मोर्चे पर अपने खुद के जादू हैडर चिपके रहते हैं। इसके लिए एक GUID एक अच्छा विकल्प है।

+0

धन्यवाद, मुझे लगता है कि मैं इस के लिए, अच्छी पार्श्व सोच के लिए जाऊंगा! (मैं अभी तक नेट 4 का उपयोग नहीं कर रहा हूं इसलिए दूसरा जवाब मेरे लिए उपयोग योग्य नहीं है) – MikeG

0

.NET 4.0 में बनाए गए GZipStream में कुछ सुधार हुए हैं जो इसे रोकते हैं।

System.IO.Compression में

संपीड़न एल्गोरिदम .NET में 4. DeflateStream और GZipStream अब बढ़ पहले से ही संकुचित डेटा सुधार किया गया है: शायद के लिए नेट की ओर पलायन एक विकल्प है। source

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

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