मुझे बाइनरी (टेक्स्ट/जेएसओएन दुर्भाग्य से नहीं) Thrift ऑब्जेक्ट्स के रूप में क्रमबद्ध कुछ फ़ाइलों को संसाधित करने के लिए कहा गया है, लेकिन मेरे पास प्रोग्राम बनाने वाले प्रोग्राम या प्रोग्रामर तक पहुंच नहीं है, इसलिए मुझे उनकी संरचना का कोई अंदाजा नहीं है, फील्ड ऑर्डर इत्यादि। क्या बाइनरी फाइल खोलने और इसका विश्लेषण करने के लिए थ्रिफ्ट पुस्तकालयों का उपयोग करने का कोई तरीका है, फ़ील्ड प्रकारों, मूल्यों, घोंसले आदि की सूची प्राप्त करना?आप एक बाइनरी थ्रिफ्ट फ़ाइल इंजीनियर कैसे कर सकते हैं?
उत्तर
दुर्भाग्यवश ऐसा प्रतीत होता है कि थ्रिफ्ट का बाइनरी प्रोटोकॉल डेटा का बहुत अधिक टैगिंग नहीं करता है; यह डीकोड करने के लिए प्रतीत होता है कि आपके पास .thrift फ़ाइल है, इसलिए आप जानते हैं कि अगले 4 बाइट्स को पूर्णांक माना जाता है, और वास्तव में फ्लोट का पहला भाग नहीं होता है। तो ऐसा प्रतीत होता है कि आप मूल रूप से हेक्स संपादक (या समतुल्य) में फ़ाइलों को देखकर और सटीक पैटर्न के आधार पर फ़ील्ड को कम करने की कोशिश कर रहे हैं।
एक बहुत कुछ उपयोगी बिट्स के होते हैं:
प्रत्येक फ़ाइल एक संस्करण, प्रोटोकॉल पहचानकर्ता स्ट्रिंग, और क्रम संख्या के साथ शुरू होता है। मानचित्र 6 बाइट्स से शुरू होंगे जो कुंजी और मान प्रकारों (पहले दो बाइट्स, पूर्णांक कोड के रूप में) की पहचान करेंगे और 4 बाइट पूर्णांक के रूप में तत्वों की संख्या को पहचानेंगे। प्रकार कोड मानक मानते हैं (उनके परिभाषाओं का कैनोलिक स्थान थ्रिफ्ट स्रोतों में TProtocol.h प्रतीत होता है, उदाहरण के लिए एक बूलियन मान टाइप कोड 2, यूटीएफ -8 स्ट्रिंग द्वारा टाइप कोड 16 द्वारा निर्दिष्ट किया जाता है, और इसी तरह) । स्ट्रिंग्स को 4 बाइट पूर्णांक लंबाई फ़ील्ड द्वारा उपसर्ग किया जाता है, और सूचियों को टाइप (1 बाइट) और 4 बाइट लंबाई से उपसर्ग किया जाता है। ऐसा लगता है कि सभी पूर्णांक फ़ील्ड बड़े-एंडियन बचाए जाते हैं, और फ्लोटिंग पॉइंट आईईईई प्रारूप में सहेजे जाते हैं (जो कम से कम युगल को अपेक्षाकृत आसान बनाना चाहिए)।
टीबीनरीप्रोटोकॉल * थ्रिफ्ट में फ़ाइलों में कुछ और उपयोगी विवरण हैं; प्लस तरफ, कई अलग-अलग कार्यान्वयन हैं ताकि आप उस भाषा में लागू किए गए लोगों को पढ़ सकें जिनके साथ आप सबसे अधिक आरामदायक हैं।
क्षमा करें, मुझे पता है कि शायद यह सहायक नहीं है लेकिन यह वास्तव में प्रकट होता है यह थ्रिफ्ट बाइनरी प्रारूप प्रदान करता है; स्पष्ट रूप से द्विआधारी प्रारूप को इस इरादे से डिजाइन किया गया था कि आप हमेशा सटीक प्रोटोकॉल स्पेक को पहले से ही जानते होंगे, और यह लक्ष्य अंधेरे से डीकोड करने के लिए आसान बनाने के बजाय तार स्थान को कम करना था।
- 1. ग्राहकों को अपाचे थ्रिफ्ट पुश नोटिफिकेशन कर सकते हैं?
- 2. क्या आप जेएनआई के बजाय अपाचे थ्रिफ्ट का उपयोग कर सकते हैं?
- 3. रिवर्स इंजीनियर एक फ़ाइल प्रारूप
- 4. आप एक WPF ऑब्जेक्ट को क्लोन कैसे कर सकते हैं?
- 5. क्या आप एक चर फ़ाइल में एक PHP फ़ाइल प्रस्तुत कर सकते हैं?
- 6. क्या आप एक साथ डीएलएस बंडल कर सकते हैं?
- 7. सी में आप क्या नहीं कर सकते हैं जिसे आप उद्देश्य-सी में कर सकते हैं?
- 8. सी # आप एक अन्य बैच फ़ाइल का आउटपुट कैसे प्राप्त कर सकते हैं?
- 9. आप कक्षा के गुणों पर कैसे लूप कर सकते हैं?
- 10. क्या आप एफ # में एक ऑपरेटर (***) परिभाषित कर सकते हैं?
- 11. एक बड़ी बाइनरी फ़ाइल
- 12. थ्रिफ्ट
- 13. एक बाइनरी फ़ाइल (अजगर)
- 14. आप स्ट्रीमिंगडेटा हैंडलर को आउटपुटस्ट्रीम कैसे पाइप कर सकते हैं?
- 15. संगतता उद्देश्यों के लिए इंजीनियर बाइनरी फ़ाइल स्वरूपों को कैसे उलटा करें
- 16. एक बाइनरी फ़ाइल
- 17. कोर टेक्स्ट का उपयोग कर फ़ाइल से आप फ़ॉन्ट (टीटीएफ) कैसे लोड कर सकते हैं?
- 18. जावास्क्रिप्ट को वेबकिट कर सकते हैं या एक छवि पोस्ट कर सकते हैं पुन: शैली शुद्ध बाइनरी के रूप में?
- 19. आप UIElement के अभिभावक को कैसे प्राप्त कर सकते हैं?
- 20. आप विधि पैरामीटर के नाम कैसे प्राप्त कर सकते हैं?
- 21. आप तालिका के कॉलम नाम कैसे वापस कर सकते हैं?
- 22. आप एंड्रॉइड में लोडिंग स्क्रीन कैसे उत्पन्न कर सकते हैं?
- 23. आप आईएमएपी का उपयोग कर मेल कैसे भेज सकते हैं?
- 24. आप समांतर पाइथन लिपि कैसे प्रोफाइल कर सकते हैं?
- 25. आप विम में पायथन का उपयोग कैसे कर सकते हैं?
- 26. यदि आप संदर्भ द्वारा अपवाद पकड़ते हैं, तो क्या आप इसे संशोधित कर सकते हैं और पुनर्स्थापित कर सकते हैं?
- 27. आप nowjs को कैसे कॉन्फ़िगर कर सकते हैं?
- 28. आप अंतिम गिट एड को कैसे पूर्ववत कर सकते हैं?
- 29. सी # में आप कैसे नींबू (nybble) बाइट्स कर सकते हैं?
- 30. आप सूची नामों को संक्षिप्त कर सकते हैं? क्यूं कर?
मुझे लगता है कि आप http://incubator.apache.org/thrift/ के बारे में बात कर रहे हैं - आप शायद उस भाषा को पोस्ट/टैग करना चाहें जो आप उपयोग कर रहे हैं। – TrueWill