2011-02-02 13 views
6

मेरे सहयोगियों में से किसी एक के साथ शर्त लगाने के लिए, मैं यह जानना चाहता हूं कि वीबी 6 मूल रूप से किसी भी हस्ताक्षरित डेटा प्रकार का समर्थन करता है या नहीं।क्या वीबी 6 असंबद्ध डेटा प्रकारों का समर्थन करता है?

मुझे विश्वास है कि "नहीं" होने का जवाब है, लेकिन मुझे यह पुष्टि करने वाला कोई भी आधिकारिक दस्तावेज नहीं दिख रहा है। एक माइक्रोसॉफ्ट दस्तावेज़ के लिए एक साधारण लिंक एक स्वीकार्य जवाब होगा; एक ऐतिहासिक औचित्य क्यों है कि इस तरह के प्रकार समर्थित नहीं हैं एक अतिरिक्त बोनस होगा।

+1

मुझे पता है कि VBA इसका समर्थन नहीं करता है जब आप COM इंटरॉप कार्य करें: अहस्ताक्षरित प्रकार OLE प्रकार का हिस्सा नहीं हैं। मैं वीबी 6 के लिए निश्चित नहीं हूँ। –

+3

मुझे संदेह है कि बिना किसी हस्ताक्षर किए गए नंबर वीबी में असमर्थित हैं क्योंकि वे अन्य भाषाओं में असमर्थित हैं: वे शायद ही कभी आवश्यक हैं। – Gabe

+0

स्वचालन में एकमात्र समर्थित हस्ताक्षरित पूर्णांक बाइट (हस्ताक्षरित चार) – wqw

उत्तर

9

के रूप में क्रिस ने कहा, वे समर्थित नहीं कर रहे हैं Byte डेटाप्रकार, जो अहस्ताक्षरित के रूप में ही उपलब्ध है, के रूप में डेटाटाइप्स की इस सूची में देखा जा सकता के लिए छोड़कर: Data Type Summary

पृष्ठ वीबीए का उल्लेख करता है, लेकिन यह विजुअल स्टूडियो 6.0 का भी उल्लेख करता है, और समर्थित डेटा प्रकार समान थे।

मुझे नहीं लगता कि आपको आधिकारिक दस्तावेज़ीकरण मिलेगा कि क्यों उन्होंने बिना हस्ताक्षर किए गए डेटा प्रकारों को जोड़ा है क्योंकि आमतौर पर यह गलत तरीका है कि शायद यह नहीं था कि "हम इसका समर्थन क्यों नहीं करना चाहिए "जितना अधिक" यह जोड़ने के लिए अतिरिक्त प्रयास के लायक होगा "।

मार्कजे द्वारा बताए गए Byte डेटाटाइप के अपवाद का उल्लेख करने के लिए संपादित किया गया।

+0

जैसा कि मैं प्रोग्रामिंग भाषाओं के इतिहास के बारे में अधिकतर अज्ञानी हूं, मुझे लगता है कि वीबी के लिए डेटा प्रकार मोटे तौर पर सी के आधार पर आधारित थे, लेकिन जैसा कि मैंने अभी विकिपीडिया पर पाया है, वीबी बेसिक पर आधारित है, जिसे सी से पहले विकसित किया गया था। (हालांकि 60 के दशक में दोनों)। – Fueled

+0

ठीक है, वीबी सभी के बाद "विजुअल बेसिक" है, हालांकि अक्सर मुझे पूरा नाम नहीं लिखा जाता है, इसलिए यदि आपने इसके साथ काम नहीं किया है, तो हो सकता है कि आपने इसे देखा न हो। सही पृष्ठ से जोड़ने के लिए –

+2

+1। हालांकि उस पृष्ठ की सावधानीपूर्वक पढ़ने से पता चलता है कि वीबी 6 ** एक ** हस्ताक्षरित डेटाटाइप का समर्थन करता है: 'बाइट' जो सी 'char' की तरह एक हस्ताक्षरित 1-बाइट पूर्णांक है। वीबी 6 में 'इंटेगर', 'लांग' और' मुद्रा' भी है जो क्रमशः 2-बाइट, 4-बाइट और स्केल किए गए 8-बाइट पूर्णांक पर हस्ताक्षर किए गए हैं। – MarkJ

0

समर्थित नहीं है।

उन्हें अनुकरण के बारे में कुछ अच्छी जानकारी:, http://www.vbforums.com/showthread.php?t=578430

+0

मुझे पहले से ही सटीक थ्रेड मिला था, लेकिन मैं वास्तव में आधिकारिक माइक्रोसॉफ्ट दस्तावेज देखना चाहता हूं जो कहता है कि क्यों हस्ताक्षरित प्रकार समर्थित नहीं हैं। – Fueled

1

वीबी 6 के लिए समर्थित नहीं है, इसे VB.NET में इस link पर समझाया गया था।

+0

यह दिलचस्प है, यह दिखाता है कि इन हस्ताक्षरित प्रकारों को पहली बार वीएस 2005 के साथ पेश किया गया था, जिसका अर्थ है कि वे वीबी.नेट के पहले संस्करण के साथ उपलब्ध नहीं थे। – Fueled

2

एकमात्र हस्ताक्षरित पूर्णांक प्रकार बाइट है।

0

हेक्स मानों को एक लंबे प्रकार में पास करने का विकल्प है जिसे तब तक हस्ताक्षरित किया जाएगा जब तक कि साइन बिट मूल्य का हिस्सा न हो। इसलिए उदाहरण के लिए,

&HFFFF = -1 

but &HFFFF& = 65535 

ध्यान दें कि इन 16 बिट वैल को लंबे प्रकार में पारित किया गया है, जो कि 32 बिट है। तो साइन बिट छूटा हुआ है। लेकिन अगर आपको 32 बिट की आवश्यकता है तो एक सुझाव टाइप डबल का उपयोग करना था, किसी ने पहले इसका उल्लेख किया था।

सामान्य रूप से हस्ताक्षरित प्रकारों की आवश्यकता के संबंध में, एक बाइट की तुलना में एक असाइन किया गया लांग 32 बिट बाइनरी होगा, जो केवल 8 बिट है। बाइट प्रकारों के साथ एक धारावाहिक बंदरगाह के माध्यम से 24 बिट रजिस्ट्रार लिखने का प्रयास करें .. :) मेरा लेना यह है कि वीबीए में साइन बिट बिट लॉजिक के रास्ते में एक स्प्लिंटर की तरह बैठता है ..

किसी भी मामले में, मुझे उम्मीद है कि यह किसी की मदद करेगा ।

चियर्स,

Norwood, एमए