कोबोल लेआउट पढ़ना एक कोबोल लेआउट कैसे पढ़ा जाए यह ट्यूटोरियल विशेष रूप से हमारे ग्राहकों के लिए लिखा गया था, जिन्होंने डिस्क इंटरचेंज में रूपांतरण किया हुआ है और डेटा के साथ कोबोल लेआउट प्राप्त किया है। यह आपको सबसे सरल लेआउट पढ़ने के लिए पर्याप्त जानकारी देने का इरादा है इसमें सभी विषय या सब कुछ शामिल नहीं है जो आपको एक जटिल लेआउट में मिलेगा, और इसका उद्देश्य केवल कोबोल लेआउट को समझाना है ताकि आप अपने परिवर्तित डेटा का उपयोग कर सकें, ताकि आप कोबोल प्रोग्राम लिख सकें। यह आलेख यहां से शुरू होता है: कोबोल लेआउट पढ़ना जहां आपको कोई विषय अनुक्रमणिका भी मिल जाएगी। भाग 4: संख्यात्मक फ़ील्ड इस खंड में कई संख्यात्मक डेटा प्रकार और संकेतों और दशमलव बिंदुओं को संभालने के बारे में बताया गया है। इस खंड की सामग्री: न्यूमेरिक फील्ड कन्वर्ट करने की आवश्यकता है हमारे व्यापार कोबोल में कई प्रकार के न्यूमेरिक फील्ड हैं। इन डेटा प्रकारों में DISPLAY फ़ील्ड शामिल है, जो वर्णों (0 - 9 के लिए ईबीसीडीआईसी या एएससीआईआई वर्ण) से बना है, द्विआधारी क्षेत्र, पैक किए गए फ़ील्ड और फ्लोटिंग-पॉइंट फ़ील्ड शामिल हैं। एक अलग या - साइन या एक संकेत ओवरपॉन्च के लिए विकल्प भी हैं, और वास्तविक या निहित दशमलव के लिए डेटा प्रकार USAGE आईएस खंड द्वारा निर्दिष्ट किया गया है यूज़ेज़ आईज़ क्लॉज वास्तव में पहले वर्णित चित्र की तुलना में तस्वीर स्टेटमेंट के लिए अधिक है एक यूजेज है I खंड है जो एक संख्यात्मक क्षेत्र का प्रदर्शन निर्दिष्ट करता है- डिस्प्ले, बाइनरी, या कम्प्यूटेशनल। पूर्ण वाक्यविन्यास, उदाहरण के माध्यम से, यह है: यह क्षेत्र को कम्प्यूटेशनल -3 प्रारूप में संग्रहीत करने के लिए कहता है उपयोग का हिस्सा वैकल्पिक है और आम तौर पर छोड़ दिया जाता है, और कम्प्यूटेशनल को संक्षिप्त रूप से कंप किया जा सकता है, इसलिए आप इसे आमतौर पर इस लिखित रूप में देख सकते हैं कोबोल लेआउट में सामान्यतः आपको दिखाई देने वाले संख्यात्मक फ़ील्ड के प्रकार हैं: प्रदर्शन (हस्ताक्षरित क्षेत्रों सहित) बाइनरी कम्प्यूटेशनल, या कॉम्प -1 कॉम्प -2 कॉम्प -3 प्रदर्शन, जिसमें हस्ताक्षरित या ज़ोन किए गए क्षेत्रों सहित, सबसे आम है, और कंप-3 संख्यात्मक क्षेत्र का दूसरा सबसे सामान्य प्रकार है। कुछ कंपलर्स में कंप -4 और कॉम्प -5 डेटा प्रकार भी हो सकते हैं, आमतौर पर किसी अन्य कंपाइलर पर कंप्यूटर का अनुकरण करने के लिए। यूज़ेज डिस्प्ले डिस्प्ले फॉर्मेट, कोबोल में नंबरों के लिए डिफ़ॉल्ट है। यदि कोई भी उपयोग नहीं किया गया है, तो इसका उपयोग डिफ़ॉल्ट रूप से प्रदर्शित होता है, जिसका अर्थ है कि मान को EBCDIC वर्ण (अंक) के रूप में संग्रहीत किया जाता है, जैसा कि बाइनरी के विपरीत है। मान हो सकता है या नहीं हो सकता है दशमलव - निहित या वास्तविक - और अहस्ताक्षरित या हो सकता है या एक एम्बेडेड या एक अलग संकेत - जो या तो अग्रणी या अनुगामी हो सकता है डिफ़ॉल्ट हस्ताक्षरित डिस्प्ले प्रारूप फ़ील्ड में एक एम्बेडेड अनुगामी चिह्न होता है, और इसे आमतौर पर एक हस्ताक्षरित, या आईबीएम हस्ताक्षर, या ज़ोन फ़ील्ड कहा जाता है। इस डेटा प्रकार को नीचे वर्णित किया गया है हस्ताक्षरित फ़ील्ड एक सामान्य संख्यात्मक डेटा प्रकार है जिसे कोबोल में आईबीएम मैनफ्रेम पर इस्तेमाल किया जाता है जिसे हस्ताक्षर कहा जाता है (जिसे आईबीएम हस्ताक्षर भी कहा जाता है, या ज़ोन)। COBOL इस प्रकार के क्षेत्र को एक प्रदर्शन स्वरूप फ़ील्ड के चित्र खंड में एस द्वारा दर्शाता है, उदा। तस्वीर S9 (6) एक हस्ताक्षरित क्षेत्र, नियमित रूप से ईबीसीडीआईसी संख्यात्मक पात्रों, एक चरित्र प्रति बाइट, सभी अंकों के लिए होता है, जो कि चिन्ह को पकड़ता है, सबसे अधिक महत्वपूर्ण (साइन इन करें) या कम से कम-महत्वपूर्ण (निशान अनुगामी) अंक - आमतौर पर कम-महत्वपूर्ण अंक उस अंक को पकड़ने वाला अंक जोड़ता है, या उस अंक की संख्या को उस अंकों पर हस्ताक्षर करता है। यह एक बाइट बचाता है जो हस्ताक्षर अन्यथा कब्जा होगा। उस अंक का मान द्विआधारी मान के रूप में जमा होता है, और वह हस्ताक्षर कोड वाला ORD है, जो नकारात्मक संख्या के लिए D0 हेक्स है, सकारात्मक मानों के लिए C0 हेक्स और अहस्ताक्षरित मूल्यों के लिए F0 हेक्स। अतिप्रचलित होने के कारण, अंक जो अंक धारण करते हैं वह नंबर के रूप में दिखाई नहीं देगा जब फ़ील्ड EBCDIC वर्ण मोड में दिखाई देगी। यदि आपके पास फ़ील्ड है और एक ईबीसीडीआईसी एडिटर के साथ 1.23 का मान देखते हैं, तो यह 0000012C पढ़ा जाएगा एएससीआईआई कोबोल कंपाइलर एक ओवरपंच के साथ एक हस्ताक्षरित डेटा प्रकार का भी उपयोग करते हैं, लेकिन हस्ताक्षर बिट्स अलग हैं और कंपलेर्स के बीच मानकीकृत नहीं हैं। EBCDIC और ASCII हस्ताक्षरित क्षेत्रों दोनों पर अधिक विवरण के लिए हमारी टेक-टॉक संक्षिप्त हस्ताक्षरित फ़ील्ड देखें। साइन अलग है कोडन हस्ताक्षरित क्षेत्रों डिफ़ॉल्ट रूप से मान साइन इन करें (उपरोक्त हस्ताक्षरित क्षेत्रों देखें)। लेकिन एक अलग संकेत के लिए कोबोल में एक प्रावधान है, और यह या तो अग्रणी या अनुगामी हो सकता है इसके लिए बयान, यह प्रमुख या अनुगामी खंड के साथ जोड़ा जा सकता है: यह कथन प्राथमिक आइटम (क्षेत्र) या पूरे रिकॉर्ड पर लागू किया जा सकता है। कम्प्यूटेशनल और बाइनरी फ़ील्ड क्योंकि कंप्यूटर द्विआधारी संख्याओं के साथ कम्प्यूटेशंस प्रदर्शन करते हैं, यह उन मूल मानकों को अपने मूल बाइनरी फॉर्म में फ़ाइल से रखने के बजाय मानव पठनीय आधार दस में जमा करने के लिए अधिक कुशल होता है। यदि संख्या को अपने मूल बाइनरी प्रारूप में संग्रहीत किया जाता है तो यह फ़ाइल से इनपुट हो सकता है और सीधे उपयोग किया जा सकता है। यदि इसकी आधार दस प्रारूप में संग्रहीत है, तो इसे गणना करने से पहले द्विआधारी में परिवर्तित होने की जरूरत है, फिर भंडारण के लिए वापस दस में परिवर्तित किया गया। कोबोल कई बाइनरी डेटा प्रकारों को परिभाषित करता है हम यहां एक संक्षिप्त सारांश की सूची देंगे, और आप कोबोल कम्प्यूटेशनल फ़ील्ड और कोबोल कॉम्प -3 पैक किए गए फ़ील्ड में और अधिक विवरण पा सकते हैं। हम शुरू करने से पहले, समझने के लिए एक महत्वपूर्ण बिंदु है: COBOL मानक, COBOL संकलक को लिखा है, जो विक्रेता के लिए अधिकतर डेटा प्रकारों के वास्तविक कार्यान्वयन को छोड़ देता है। इसका कारण यह है कि विभिन्न कंप्यूटर - सीपीयू - आंतरिक रूप से अलग-अलग बाइनरी अभ्यावेदन का उपयोग करते हैं, और अपने स्वयं के द्विआधारी नंबरों के साथ बेहतर कार्य करते हैं यह दृष्टिकोण बेहतर और तेज संकलक में परिणाम देता है, लेकिन यह भी भ्रम का कारण बनता है, क्योंकि एक मशीन पर एक कॉम्प डेटा प्रकार जरूरी नहीं कि किसी अन्य मशीन पर कंप्यूटर के समान होता है। नीचे दी गई सारणी सामान्य उपयोगों को सूचीबद्ध करती है, सभी कंपाइलर इन प्रकारों का पालन नहीं करेंगे। शब्द आदेश और संकेतों के बारे में अधिक जानकारी के लिए ऊपर दी गई लिंक देखें जो डेटा टाइप करता है वह फ़ील्ड स्टोरेज के लिए उपयोग करता है उपयोग द्वारा निर्धारित किया जाता है फ़ील्ड परिभाषा में खंड है, और ज्यादातर मामलों में स्टोरेज के बाइट्स की संख्या PIC में अंकों की संख्या से निर्धारित की जाती है। फ़्लोटिंग बिंदु संख्याएं मानक बाइनरी स्वरूपों का पालन करती हैं और जैसे उनके आकार को किसी पीआईसी द्वारा निर्धारित नहीं किया जाता है, और फ़ील्ड परिभाषा में कोई पीआईसी का उपयोग नहीं किया जाता है। इस डेटा प्रकार को कैसे संग्रहीत किया जाता है का विवरण पैक्ड दशमलव आमतौर पर COMP-3 के रूप में कार्यान्वित किया जाता है कंप-3 देखें जब द्विआधारी या कंप फ़ील्ड विनिर्देश पढ़ते हैं, तो पीआईसी में सूचीबद्ध आकार दशमलव अंकों की संख्या होती है, क्योंकि संख्या को द्विआधारी से दस आधार पर परिवर्तित किया जाता है। पैक किए गए क्षेत्र के मामले में, इसका आकार अनपैकिंग के बाद होता है। वास्तविक दशमलव अधिकांश पीसी प्रोग्रामर संख्यात्मक मानों में वास्तविक दशमलव के संदर्भ में सोचते हैं। एक पीसी पर, अगर आपके पास डॉलर और सेंट फ़ील्ड है, तो कहें, इनवॉइस कुल, 123.45 की राशि में, फ़ाइल में छह बाइट 123.45 (और संभवत: एक चिन्ह) होगा। दूसरे शब्दों में, फ़ाइल में एक वास्तविक दशमलव बिंदु है। COBOL यह भी कर सकता है, निम्न के माध्यम से: या: की उपस्थिति। तस्वीर में फ़ाइल में वास्तविक दशमलव का कारण बनता है। अनुमानित दशमलव, हालांकि, कोबोल में बहुत अधिक आम है। अनुमानित दशमलव अनुमानित दशमलव का मतलब है कि एक दशमलव बिंदु एक फ़ील्ड में निर्दिष्ट स्थान पर निहित है, लेकिन फ़ाइल में वास्तव में संग्रहीत नहीं है। अंतर्निहित दशमलव का स्थान पीआईसी में वी द्वारा दर्शाया गया है। अंतर्निहित दशमलव का उपयोग फ़ाइल में स्थान बचाता है। अंतर्निहित दशमलव किसी भी प्रकार के किसी भी प्रकार, जिसमें पैक किया हुआ या COMP-3 फ़ील्ड शामिल है, पर लागू हो सकता है। उदाहरण के लिए, एक निहित दशमलव क्षेत्र है। कुल 6 अंक हैं, फिर एक निहित दशमलव - वी - और दो अंक, कुल 8 अंकों के लिए। क्षेत्र आकार में 8 बाइट्स हैं, कोई भी नहीं है फाइल में - दशमलव बिंदु का स्थान 9 (6) और 99 के बीच होता है। यदि फ़ील्ड में 00000123 होता है तो खाता शेष 1.23 है, क्योंकि डॉलर और सेंट के बीच एक दशमलव निहित है सिंक्रनाइज़ेशन और संरेखण यह विषय इस ट्यूटोरियल के लिए थोड़ा सा शामिल है, लेकिन आपको इसके बारे में पता होना चाहिए। द्विआधारी भंडारण (बाइनरी और कॉम्प) का उपयोग करते समय, कुछ मशीनों पर कुछ कंपाइलर्स को आवश्यकता हो सकती है कि कुछ सीमाओं पर एक संख्यात्मक फ़ील्ड प्रारंभ हो। उदाहरण के लिए, 32 बिट मशीन पर, यह हो सकता है कि 32 बिट सीमा पर एक कंप फ़ील्ड शुरू हो। यदि आप एक रिकार्ड के मध्य में एक कॉम्प फ़ील्ड निर्दिष्ट करते हैं, और यह 32 बिट (4 बाइट) सीमा से शुरू होने वाला नहीं होता है, तो कंपाइलर उसे सिंक्रनाइज़ करने के लिए 32 बिट सीमा में संरेखित करेगा। क्या वास्तव में फ़ाइल में संग्रहीत हो सकता है, लेआउट पर PIC के रूप में समान नहीं हो सकता संकेत मिलता है यह एक बहुत ही सामान्य समस्या नहीं है, आंशिक रूप से क्योंकि बाइनरी और कंप फ़ील्ड फाइल में बहुत आम नहीं हैं, लेकिन आपको इसके बारे में पता होना चाहिए। अतिरिक्त जानकारी डेटा रूपांतरण के बारे में अधिक लेख के लिए, हमारा टेकटाक इंडेक्स देखें। हमारी कोबोल कनवर्ज़न सर्विसेज डिस्क इंटरचेंज सर्विस कंपनी सभी आईबीएम मेनफ्रेम ईबीसीडीआईसी डेटा प्रकारों सहित पीसी और यूनिक्स सिस्टम से सबसे अधिक एएससीआईआई डेटा प्रकारों सहित सबसे अधिक संख्यात्मक डेटा प्रकार बदल सकती है। रूपांतरण रूटीन की हमारी लाइब्रेरी हमें उन मुश्किल कामों को संभालने के लिए अनुमति देती है जो मानक कोबोल कंपाइलर्स को कनट बदलते हैं। USAGE क्लॉज USAGE क्लॉज कंप्यूटर मेमोरी में या एक फ़ाइल रिकॉर्ड में डेटा आइटम का प्रारूप निर्दिष्ट करता है कुछ परिस्थितियों में, डेटा-वस्तु फ़ाइल-रिकार्ड प्रारूप यूएसएजी क्लाज द्वारा निर्दिष्ट के अनुसार अपने कंप्यूटर-मेमोरी प्रारूप से अलग हो सकता है। ऐसा तब हो सकता है जब अलग-अलग डेटा संग्रहण प्रारूप वाले गैर-कोबोल फाइल सिस्टम किसी इंटरफ़ेस के माध्यम से उपयोग किए जा रहे हों। उदाहरण के लिए, Acu4GL गैर-कोबोल फ़ाइल सिस्टम तक पहुंचने के लिए SQL का उपयोग करता है, और इस प्रक्रिया में डेटा पर एक अनुवाद होता है। नोट: डेटा संग्रहण व्यवहार को प्रभावित करने के लिए कई संकलक विकल्प हैं। ACUCOBOL-GT संगतता अनुभाग में डेटा संग्रह विकल्प देखें। बाईं ओर स्थित कॉलम, दाईं ओर स्थितियों के लिए स्वीकार्य संकेताक्षर दिखाता है: किसी यूजियेज क्लॉज का उपयोग किसी भी डेटा विवरण प्रविष्टि में, 66, 78 और 88 के स्तर के नंबरों के अलावा किया जा सकता है। एक USAGE खंड का बाहरी उपयोग नहीं किया जा सकता है फ़्लोटिंग पॉइंट डेटा आइटम यदि एक यूज़ेज क्लॉज समूह आइटम के लिए डेटा विवरण प्रविष्टि में है, तो अधीनस्थ प्रविष्टियों के लिए प्रकट होने वाले किसी भी यूजेज खंड में एक ही प्रकार का होना चाहिए। एक COMP, COMP-1, COMP-2, COMP-3, COMP-4, COMP-5, COMP-6, BINARY, या PACKED-DECIMAL आइटम की तस्वीर स्ट्रिंग में केवल 9, एस, वी, और प्रतीक चिन्ह हो सकते हैं पी। COMP-6 आइटम एस प्रतीक का उपयोग नहीं कर सकते। किसी COMP-X या Comp-N आइटम की तस्वीर स्ट्रिंग में केवल सभी 9 प्रतीक या सभी एक्स प्रतीक हो सकते हैं। एक USAGE है INDEX डेटा आइटम के लिए डेटा विवरण प्रविष्टि में निम्न में से कोई भी कड़ी नहीं हो सकती है: ब्लेंक कब शून्य, जस्टिफाइड, पिक्चर, और VALUE IS है USAGE IS INDEX डेटा आइटम के लिए स्तर 88 आइटम निर्दिष्ट नहीं किए जा सकते हैं एक USAGE के लिए डेटा विवरण प्रविष्टि है POINTER डेटा आइटम में निम्न में से किसी भी एक से मेल नहीं हो सकता है: ब्लेंक कब शून्य, जस्टिफ़ीड, या चित्र एक POINTER डेटा आइटम में इसके लिए निर्दिष्ट एक मूल्य खंड हो सकता है, लेकिन मान शब्द NULL होना चाहिए। एक USAGE के लिए डेटा विवरण प्रविष्टि फ़्लोट है या एक यूजेज है डबल डेटा आइटम में निम्न में से कोई भी खंड नहीं हो सकता है: ब्लेंक जब शून्य, जस्टिफ़ीड, या चित्र। फ्लोट या डबल डेटा आइटम में एक मूल्य खंड हो सकता है यह मूल्य एक फ्लोटिंग पॉइंट शाब्दिक, एक संख्यात्मक शब्दशः, या शब्द शून्य हो सकता है। यहां एक वर्किंग-स्टोरेज अनुभाग डेटा आइटम का एक उदाहरण है: निम्नलिखित को सी-स्टाइल डेटा प्रकारों को सामूहिक रूप से कहा जाता है: साइन-इन्ट, अनसेंस-इएनटी, साइन-लघु, अनजाने-छोटा, साइन-लांग, अनसाइन-लांग। ये डेटा प्रकार सी प्रोग्रामिंग भाषा में पाए जाने वाले डेटा प्रकार के समान हैं। सी-स्टाइल डेटा प्रकार के लिए डेटा विवरण प्रविष्टि में निम्न में से कोई भी खंड नहीं हो सकता है: ब्लेंक जब शून्य, जस्टिफाइड, या चित्र। कंट्रोल-प्रकार, ग्राफ़िकल कंट्रोल टाइप नामों में से एक है, जो कि संकलक के लिए जाना जाता है, जैसे कि LABEL या ENTRY-FIELD, या ActiveX, COM, या Control का नाम। USAGE हेंडा डेटा आइटम के लिए डेटा विवरण प्रविष्टि में निम्न में से कोई भी खंड नहीं हो सकता है: ब्लेंक जब शून्य, जस्टिफ़ीड, या चित्र। यदि इसमें एक VALUE खंड है, तो निर्दिष्ट मान शब्द NULL होना चाहिए। फ़ॉन्ट-नाम निम्नलिखित आइडेंटिफ़ायर में से एक है: डिफॉल्ट-फॉंट, फिक्स्ड-फ़ॉंट, पारंपरिक-फॉंट, स्मॉल-फॉंट, ममेयम-फॉंट, लार्ज-फॉंट यह ध्यान दिया जाना चाहिए कि या तो डीएफ विकल्प या - क्यू विकल्प कंपाइलर को क्रमशः COMP-1 और COMP-2 को फ्लोैट और डबल के रूप में इलाज के लिए प्रेरित करेगा। अधिक जानकारी के लिए, ACUCOBOL-GT में संक्रमण 5.4 में देखें। लेआउट नाम सिस्टम में से एक मानक लेआउट मैनेजर्स का नाम है। वर्तमान में, यह केवल एलएम-रिसाइज़ हो सकता है समूह स्तर पर लिखा गया एक USAGE खंड उस समूह वस्तु के अधीनस्थ प्रत्येक प्राथमिक आइटम पर लागू होता है यदि कोई USAGE खंड निर्दिष्ट नहीं किया गया है, तो USAGE IS DISPLAY निहित है। USAGE का आंतरिक प्रारूप DISPLAY आइटम ASCII है इंडेक्स आइटम का प्रारूप 32-बिट द्विआधारी हस्ताक्षरित है इसका आकार हमेशा चार होता है, और इसमें 2147483647 से लेकर 2147483647 तक के कई मान हैं। जब 6.0.0 (-Z52 उदाहरण के लिए) के संस्करणों के साथ संगतता के लिए एक कंपाइल स्विच का उपयोग करते हैं तो सूचकांक वस्तु 16-बिट अहस्ताक्षरित बाइनरी, आकार हमेशा दो होता है, और यह 0 से 65535 तक मान रखता है। कंप-1 डेटा आइटम का प्रारूप 16-बिट द्विआधारी पर हस्ताक्षर करता है कानूनी मूल्य -32767 से लेकर 32767 तक होता है। डेटा आइटम का आकार हमेशा दो बाइट्स होता है, और आंकड़ों का उच्च-क्रम वाला आधा बाएं बाइट में संग्रहीत होता है। आइटम का वर्णन करने वाली चित्र स्ट्रिंग अप्रासंगिक है। अन्य संख्यात्मक डेटा प्रकारों के विपरीत, किसी COMP-1, COMP-X या COMP-N डेटा आइटम पर एक आकार त्रुटि तब होती है जब आइटम का भौतिक संग्रह (अन्य शब्दों में, वस्तुओं में 9 की संख्या जब चित्र की त्रुटि निर्धारित की जाती है तो चित्र को नजरअंदाज किया जाता है)। कंप -2 (दशमलव संग्रहण) के लिए, प्रत्येक अंक दशमलव प्रारूप में एक बाइट में संग्रहीत किया जाता है। यदि मूल्य पर हस्ताक्षर किए गए हैं, तो एक अतिरिक्त अनुगामी बाइट को हस्ताक्षर के लिए आवंटित किया गया है। कॉम्प -2 का भंडारण यूजेज डिस्प्ले के साथ समान है, जिसमें प्रत्येक बाइट से छेड़छाड़ किए गए उच्च-क्रम वाली चार बिट्स हैं। कंप -3 (पैक-डेमियन स्टोरेज) के लिए, दो अंक प्रत्येक बाइट में संग्रहीत किए जाते हैं। एक अतिरिक्त आधा बाइट हस्ताक्षर के लिए आवंटित किया गया है, भले ही मान अहस्ताक्षरित हो। यह संकेत सहीतम स्थिति में रखा गया है, और अन्य सभी मानों के नकारात्मक मूल्य के लिए इसका मान 0x0 डी सकारात्मक माना जाता है (लेकिन नीचे नियम 18 देखें)। किसी आइटम का आकार (निहित संकेत के लिए एक सहित) को दो भागों में विभाजित किया जाता है ताकि वह वास्तविक आकार पर आ सके। एक COMP-4 वस्तु का प्रारूप द्विपक्षीय द्विआधारी है (इसकी दशमलव बिंदु के बिना मूल्य)। कंप -4 मान एक मशीन-स्वतंत्र प्रारूप में संग्रहीत किए जाते हैं। यह प्रारूप बाईं ओर स्थित स्थिति के सर्वोच्च-क्रम वाले भाग को स्थान देता है और निम्न-क्रम वाले हिस्से को दाहिनी स्थिति में नीचे ले जाता है। डेटा आइटम पर स्थित बाइट्स की संख्या इसकी चित्र में 9 की संख्या और विभिन्न संकलन-समय विकल्पों की उपस्थिति पर निर्भर करती है। उदाहरण के लिए, यदि आप प्रोग्राम को 31-अंकीय समर्थन के लिए संकलित किया गया है, तो आप केवल अठारह से अधिक 9 से अधिक हो सकते हैं यह निम्न तालिका में संक्षेप किया गया है: नोट: जहां दो मान दिए जाते हैं, छोटे मान अहस्ताक्षरित डेटा आइटम पर लागू होता है, और बड़ा मान हस्ताक्षरित डेटा आइटम पर लागू होता है। कॉम्प -5 मुख्य रूप से बाहरी कार्यक्रमों के साथ संवाद करने के लिए प्रयोग किया जाता है जो मूल डेटा संग्रहण की अपेक्षा करते हैं। COMP-5 डेटा आइटम का प्रारूप एक COMP-4 डेटा आइटम के समान है, सिवाय इसके कि डेटा मशीन-आधारित प्रारूप में संग्रहीत है। यह मेजबान मशीन के लिए स्वाभाविक रूप से एक आदेश में संग्रहीत किया जाता है। उदाहरण के लिए, पीआईसी एस 9 (9) कॉम्प -5 डेटा आइटम मेजबान मशीन पर 32-बिट बाइनरी शब्द के बराबर है, और एक तस्वीर S9 (20) COMP-5 आइटम एक 64-बिट शब्द के बराबर है। नोट: किसी COMP-5 क्षेत्र में संग्रहीत डेटा अन्य मशीनों के लिए परिवहनीय नहीं हो सकता है क्योंकि विभिन्न मशीनों में अलग-अलग प्राकृतिक बाइट-ऑर्डिंग हैं। कई मशीनों पर (68000, अधिकांश आरआईएससी), कॉम्प -5 कॉम्प -4 के समान है दूसरों पर (80x86, वैक्स), यह रिवर्स ऑर्डर में बाइट्स के समान है। एक COMP-5 डेटा आइटम के लिए एक VALUE खंड एक मशीन-स्वतंत्र प्रारूप में संग्रहीत किया जाता है और डेटा आइटम में लोड होने पर इसे समायोजित किया जाता है। इससे यह सुनिश्चित होता है कि मशीन से मूल्य मशीन से एक ही है। गणित और गैर-अंकगणितीय भंडारों पर COMP-5 आइटम में, यदि ट्रांस्केक्शन की आवश्यकता होती है, तो डिफ़ॉल्ट रूप से ACUCOBOL-GT चित्रित खंड में दिए गए अंकों की संख्या में दशमलव में कटौती करता है। आप COMP-5 आइटम के आवंटित भंडारण की क्षमता के लिए द्विआधारी में छेड़छाड़ करने के लिए - TruncANSI कंपाइलर विकल्प का उपयोग कर सकते हैं। द-डज़ और --नोट्रोंकोपशन भी ट्रांस्केक्शन को प्रभावित करते हैं अधिक जानकारी के लिए पुस्तक 1, खंड 2.1.9, डेटा संग्रहण विकल्प देखें। स्तर 01 और स्तर 77 डेटा आइटम जो COMP-5 स्वचालित रूप से एक उपयुक्त मशीन सीमा के लिए सिंक्रनाइज़ हैं, किसी भी संकलन-समय सेटिंग्स की परवाह किए बिना। यह आपको संरेखण के साथ अपने आप को चिंता किए बिना इन मदों को सुरक्षित रूप से सी उप-रूटिन में पास करने देता है यदि COMP-5 को पीआईसी एक्स (एन) डेटा आइटम के साथ प्रयोग किया जाता है और एक अल्फ़ान्यूमेरिक मान को असाइन किया गया है, तो परिणाम अनिर्धारित हैं। उदाहरण के लिए, निम्न कोड टुकड़ा NUM को अनिर्धारित संख्या के लिए कारण होता है और अंतिम पंक्ति के लिए परिणामी मूल्य 100 होगा: COMP-5 के साथ इस्तेमाल किया गया एक PIC X (n) डेटा आइटम हस्ताक्षर नहीं किया जा सकता है एक COMP-6 वस्तु का प्रारूप एक COMP-3 आइटम के समान है, सिवाय इसके कि यह अहस्ताक्षरित नहीं है और हस्ताक्षर के लिए कोई स्थान आवंटित नहीं किया गया है। यदि अंकों की संख्या अजीब है, तो यह संख्या पैक के पहले नंबर के बाईं ओर जोड़ दी जाती है। इस प्रकार दो बाइट प्रति दशमलव दशमलव संख्या होती है, और वस्तु का वास्तविक आकार इसके चित्र आकार को दो करके और गोलाकार करके निर्धारित किया जाता है। एक COMP-X डेटा आइटम केवल 9 या केवल X प्रतीकों वाली तस्वीर स्ट्रिंग के साथ वर्णित होना चाहिए। या तो मामले में, डेटा आइटम को एक अहस्ताक्षरित द्विआधारी पूर्णांक के रूप में माना जाता है, जिसमें एक आंतरिक कम्प्यूटर -4 डेटा आइटम के समान भंडारण होता है। यदि एक्स प्रतीकों का उपयोग आइटम के वर्णन के लिए किया जाता है, तो आइटम को आवंटित बाइट्स की संख्या चित्र स्ट्रिंग में एक्स प्रतीकों की संख्या के समान है। यदि इसके बजाय 9 प्रतीकों का उपयोग किया जाता है, तो आवंटित बाइट्स की संख्या कम से कम संख्या में बाइट्स की संख्या को पकड़ने के लिए आवश्यक है। उदाहरण के लिए, एक पीआईसी 99 डेटा आइटम को 1 बाइट को पीआईसी 9 (9) डेटा आइटम को 4 बाइट आवंटित किया जाएगा आवंटित किया जाएगा। आइटम की तस्वीर स्ट्रिंग में 9 प्रतीकों की संख्या के बावजूद अधिकतम मूल्य जो एक कंप में संग्रहीत किया जा सकता है - एक्स आइटम को उसके द्वारा आवंटित बाइट्स की संख्या (अधिकतम 18 अंक तक, या अधिकतम 31 अंकों के आधार पर निर्धारित किया जाता है यदि 31-अंकीय समर्थन प्रभावी हो)। उदाहरण के लिए, 1 बाइट से मिलकर एक कंप-एक्स आइटम 0 से 255 तक की एक संख्या को पकड़ सकता है। 2-बाइट कॉम्प-एक्स संख्या 0 से 65535 तक हो सकती है। किसी COMP-X आइटम पर एक आकार त्रुटि तब होती है जब मान डेटा आइटम से अधिक बड़ा हो सकता है जो शारीरिक रूप से पकड़ सकता है। जब COMP-X को PIC (X) डेटा आइटम के साथ प्रयोग किया जाता है, तो अधिकतम PIC X (8) है। (यह अधिकतम पीआईसी एक्स (16) तक बढ़ जाता है जब 31-अंकों का समर्थन प्रभावशाली होता है।) एक COMP-N डेटा आइटम एक COMP-X डेटा आइटम के समान है, सिवाय इसके कि डेटा मेजबान मशीनों में मूल स्वरूप में संग्रहीत है, मशीन-स्वतंत्र प्रारूप की बजाय पैक-डेसिमल के रूप में वर्णित डेटा आइटम कॉम्प -3 के समान हैं आप संकलित-समय विकल्प का उपयोग करके अहस्ताक्षरित पैकेड-डेसिमल को COMP-6 के रूप में माना जा सकता है। डिफ़ॉल्ट रूप से, एक BINARY डेटा आइटम एक COMP-4 डेटा आइटम के समान है। कंपाइल-टाइम ऑप्शन - D5 को बाध्यकारी डेटा आइटम के बजाय COMP-5 आइटम के रूप में मानते हैं। वॅक्सकोब्लॉल संगतता मोड में, एक कॉम्प डेटा आइटम कॉम्प -4 के समान है और इसे बाइनरी डेटा के रूप में माना जाता है। RMCOBOL संगतता मोड में, COMP COMP-2 के समान है आप डिफ़ॉल्ट व्यवहार को बदलने के लिए संकलन-समय के विकल्प का उपयोग कर सकते हैं। पॉइंटर डेटा आइटम को अहस्ताक्षरित संख्यात्मक डेटा आइटम के रूप में माना जाता है। आंतरिक स्वरूप प्रत्येक मशीन के लिए अलग है पॉइंटर डेटा आइटम का उद्देश्य अन्य डेटा वस्तुओं के पते रखने के लिए है (SET वक्तव्य देखें।) एक सूचक डेटा आइटम में इसके लिए निर्दिष्ट एक VALUE खंड हो सकता है, लेकिन निर्दिष्ट मान शब्द NULL होना चाहिए। यह इंगित करता है कि सूचक वर्तमान में किसी आइटम को इंगित नहीं करता है। यदि कोई संकेतक स्पष्ट रूप से एक प्रारंभिक मान नहीं दिया जाता है, तो इसका प्रारंभिक मान अनियमित है। सूचक डेटा आइटम 8 बाइट्स पर कब्जा कर लेते हैं। यह एक 64-बिट मशीन पर एक पता रखने के लिए पर्याप्त स्थान प्रदान करता है। यदि आप एक छोटी मशीन पर हैं, तो रनटाइम केवल पहले 4 बाइट्स पॉइंटर डेटा आइटम का उपयोग करता है (पिछला 4 बाइट स्मृति में रहते हैं, वे सिर्फ अप्रयुक्त छोड़ दिए जाते हैं) आप सूचक डेटा आइटमों को आवंटित स्थान को समायोजित करने के लिए - dw संकलन-समय विकल्प का उपयोग कर सकते हैं। यदि आप जानते हैं कि आप 64-बिट मशीन पर नहीं चलेंगे तो आप भंडारण को संरक्षित करने के लिए ऐसा कर सकते हैं। सूचक को सशर्त अभिव्यक्ति में इस्तेमाल किया जा सकता है, जहां उन्हें एक दूसरे या मूल्य के साथ तुलना की जा सकती है। सूचक की तुलना में एक तुलना या तो बराबर या बराबर होना चाहिए (तुलना की तुलना में अधिक से कम और अनुमति नहीं है)। स्तर 01 और स्तर 77 डेटा आइटम, जो कि कोई भी संकलन-समय सेटिंग्स की परवाह किए बिना, एक उपयुक्त मशीन सीमा के लिए, कुल संख्या आइटम हैं स्वचालित रूप से सिंक्रनाइज़ हो जाते हैं। यह आपको संरेखण के साथ अपने आप को चिंता किए बिना इन मदों को सुरक्षित रूप से सी उप-रूटिनों में पास करने देता है स्वत: सिंक्रनाइज़ेशन के अलावा, USAGE POINTER डेटा आइटम को USAGE UNSIGNED-LONG डेटा आइटम जैसी सभी मामलों में व्यवहार किया जाता है। यह सभी वर्तमान मशीनों को सही ढंग से संभालता है। कुछ भविष्य की मशीन की आवश्यकताओं को पूरा करने के लिए यह व्यवहार बदल सकता है फ़्लोटिंग-पॉइंट डेटा आइटम एक मशीन-आधारित प्रारूप में संग्रहीत किए जाते हैं। उपयोग फ्लोट आइटम उनको 4 बाइट आवंटित किए गए हैं। उपयोग डबल आइटम 8 बाइट्स पर कब्जा। लेवल 01 और स्तर 77 डेटा आइटम जो यूएसज फ्लोट या डबल हैं स्वचालित रूप से उपयुक्त मशीन की सीमाओं को सिंक्रनाइज़ कर रहे हैं, चाहे किसी संकलन-समय सेटिंग्स की परवाह किए बिना। यह आपको संरेखण के साथ अपने आप को चिंता किए बिना इन मदों को सुरक्षित रूप से सी उप-रूटिन में पास करने देता है कोबोल की एएनएसआई परिभाषा यह बताती नहीं है कि संकेतक संख्यात्मक क्षेत्रों में संकेत कैसे संग्रहित होना चाहिए (सिवाय हस्ताक्षर के मामले में अलग है) ACUCOBOL-GT आपको संकलित-समय विकल्पों-डीसीए, - डीसीबी, - डीसी, - डीसीएम, - DCN, - Dcr, और - DCV का उपयोग करके वैकल्पिक साइन स्टोरेज सम्मेलनों का चयन करने देता है। जब आप डेटा निर्यात और आयात कर रहे हैं, तो कभी-कभी साइन-स्टोरेज सम्प्रेषण निर्दिष्ट करना उपयोगी होता है अतिरिक्त जानकारी के लिए, उपयोगकर्ता मार्गदर्शिका, खंड 2.2.10, डेटा संग्रहण विकल्प देखें। भंडारण सम्प्रेषण को प्रभावित करता है कि डेटा USAGE DISPLAY, COMP-2, और COMP-3 डेटा प्रकारों में कैसे प्रकट होता है। USAGE DISPLAY, मानक ASCII भंडारण में, यदि चिह्न को एक अंकीय स्थिति में शामिल किया गया है, तो निम्न तालिका के अनुसार अंक एन्कोड किया गया है: तारांकन प्रविष्टियों को तारांकन-चिह्नों के साथ चिह्नित किया गया है। लक्ष्य मशीन की परवाह किए बिना एक निश्चित आकार का आकार समान आकार होता है तारांकन के बिना प्रविष्टियां आकार में चर होती हैं। ये आइटम तालिका में सूचीबद्ध बाइट्स की संख्या तक अंतरिक्ष पर कब्जा कर लेंगे। नोट: उपरोक्त तालिका में सूचीबद्ध आकार ACUCOBOL-GT चलाने वाले सभी वर्तमान और अनुमानित मशीनों को कवर करते हैं। भविष्य के आर्किटेक्चर को इन मदों को सौंपे गए अधिकतम आकार में परिवर्तन की आवश्यकता हो सकती है। निष्पादन परिवेश में, ये आइटम सभी तरीकों से कार्य करते हैं जैसे कि वे उचित आकार के निश्चित आकार के डेटा आइटम थे। उदाहरण के लिए, निम्न कोड टुकड़ा: एक 32-बिट मशीन पर चलने पर 4 प्रिंट होगा, लेकिन 64-बिट मशीन पर चलने पर यह 8 प्रिंट करेगा। निम्नलिखित उदाहरणों में, प्रत्येक बाइट को दो हेक्साडेसिमल अंक या एक उद्धृत वर्ण द्वारा दर्शाया गया है। प्रत्येक मान विभिन्न स्वरूपों में दिखाया गया है। यह भी दिखाया गया है कि विभिन्न SIGN विकल्पों का उपयोग करते हुए USAGE DISPLAY है। निम्नलिखित उदाहरण डिफ़ॉल्ट ACUCOBOL-GT साइन-स्टोरेज सम्मेलनों का उपयोग करते हैं। हैंडल डेटा आइटम कोब्ब में अपना डाटा क्लास और श्रेणी बनाते हैं। आंतरिक रूप से उन्हें पूर्णांक मान के रूप में संग्रहित किया जाता है, और प्रयोग किए जाने पर संख्याओं की तरह व्यवहार करता है। एक हैंडल डेटा आइटम आमतौर पर एक गतिशील रूप से निर्मित ऑब्जेक्ट जैसे कि फ़्लोटिंग विंडो या ग्राफ़िकल कंट्रोल के संचालन को संग्रहीत करने के लिए उपयोग किया जाता है। एचएएनडीएलई डेटा आइटम दो रूपों में आते हैं: टाइप और सामान्य जब आप ऑफ़ वाक्यांश को छोड़ते हैं तो आप जेनेरिक हैंडल बनाते हैं। जब आप ओ वाक्यांश शामिल करते हैं, तो आप टाइप किए गए हैंडल बनाएंगे आप स्पष्ट रूप से अनुमति दी जाने पर या किसी MOVE कथन के भाग के रूप में, कॉल स्टेटमेंट (पैरामीटर के रूप में), या बूलियन अभिव्यक्ति में, हैंडल डेटा आइटम का उपयोग कर सकते हैं। जेनेरिक हैंडल का उपयोग किसी भी स्थिति में किया जा सकता है जहां हैंडल की अनुमति है। जब आप संशोधित कथन के स्रोत के रूप में एक जेनेरिक हैंडल का उपयोग करते हैं, तो आप उस कथन में किसी भी नियंत्रण-विशिष्ट गुण या शैली के नाम का उपयोग करने में सक्षम नहीं होंगे। इसका कारण यह है कि जेनेरिक संभाल किसी भी प्रकार के नियंत्रण से जुड़ा हो सकता है। इस स्थिति में, संकलक यह निर्धारित नहीं कर सकता कि शैली और संपत्ति के नाम का कौन सा सेट मान्य है। टाइप किए गए हैंडल का उपयोग उन बयानों में किया जा सकता है जहां किसी भी हैंडल की अनुमति है, या जब आप एक मिलान प्रकार के ऑब्जेक्ट की बात कर रहे हैं। उदाहरण के लिए, एक डिस्प्ले लेबल वक्तव्य में हैंडल के रूप में विंडो की एक संभाल उपयोग नहीं की जा सकती। इसके बजाय, आपको या तो एक जेनेरिक हैंडल या हेंडल ऑफ लेबेल का उपयोग करना चाहिए टाइप किए गए हैंडल, उपयुक्त होने पर संकलक को संबंधित शैली और संपत्ति नाम पहचानने की अनुमति देता है टाइप किए गए हैंडल्स आपके कार्यक्रम की पठनीयता को संभाल के इच्छित उपयोग के बारे में अतिरिक्त जानकारी प्रदान करके बेहतर बनाने में मदद करते हैं, यह सुनिश्चित करने के लिए कि आप उचित परिस्थितियों में हैंडल का उपयोग कर रहे हैं। संभाल तुलना में इस्तेमाल किया जा सकता है। केवल दो सार्थक तुलना हैं: समानता या असमानता की जांच करने के लिए, और डेटा संभाल करने के लिए एक दूसरे की तुलना में। नल का एक संभाल मूल्य हमेशा एक अमान्य संभाल इंगित करता है हैंडल्स को आंतरिक रूप से 4-बाइट बाइनरी इंटिजर्स के रूप में संग्रहीत किया जाता है। यह जानकारी तब उपयोगी हो सकती है जब आप एक प्रोग्राम डीबग करना चाहते हैं (आप डीबगर में हैंडल के मूल्यों की जांच कर सकते हैं)। आप अपने कार्यक्रम में इस परिभाषा पर भरोसा नहीं करना चाहिए, हालांकि, क्योंकि यह भविष्य में परिवर्तन के अधीन है। हैंडल डेटा आइटम स्वचालित रूप से एक 4-बाइट सीमा पर SYNCHRONIZED हैं। ध्यान दें कि यह-डीएल कंपाइल-टाइम विकल्प (जो सिंक्रनाइज़ेशन की मात्रा को सीमित करता है) की सेटिंग की परवाह किए बिना होता है कुछ मशीनों पर बस त्रुटियों को उत्पन्न करने से बचने के लिए रनटाइम सिस्टम को संरेखण के इस स्तर की आवश्यकता होती है। अगर फ़ॉन्ट-नाम निर्दिष्ट किया गया है, तो यूएसएएजी खंड द्वारा वर्णित डेटा आइटम संगत फ़ॉन्ट हैंडल के साथ प्रोग्राम स्टार्टअप पर आरंभ किया गया है। यह कथन को रखने के लिए समान रूप से कार्य करता है: आपके कार्यक्रम की शुरुआत में, जहां डेटा-आइटम USAGE खंड और फ़ॉन्ट-नाम द्वारा वर्णित डेटा आइटम है, USAGE खंड में फ़ॉन्ट-नाम के समान है। डेटा का आंतरिक प्रतिनिधित्व कार्यक्रम दक्षता के लिए एक महत्वपूर्ण विचार हो। दुर्भाग्य से, संख्यात्मक डेटा आइटम के लिए COBOL द्वारा उपयोग किए जाने वाले डिफ़ॉल्ट प्रतिनिधित्व, गणनाओं की गति को नकारात्मक रूप से प्रभावित कर सकते हैं। संख्यात्मक डेटा के लिए एक अधिक कुशल स्वरूप USAGE खंड का उपयोग करके निर्दिष्ट किया जा सकता है। यह इकाई आंतरिक डेटा प्रस्तुति की अवधारणा का परिचय करती है, यह कोबोल में प्रयुक्त डिफ़ॉल्ट प्रतिनिधित्व की चर्चा करती है और यह दर्शाती है कि संख्यात्मक डेटा के लिए उपयोग किए जाने वाले प्रतिनिधित्व, अक्षमता का कारण बन सकते हैं। USAGE खंड का वाक्यविन्यास दिया गया है और विभिन्न विकल्पों को समझाया गया है। सिंक्रोनिज्ड क्लॉज की शुरुआत की गई है और एक सामान्यीकृत उदाहरण दिया गया है। उद्देश्य इस यूनिट के अंत तक आपको करना चाहिए - पता है कि कुछ एन्कोडिंग अनुक्रमों का उपयोग करके कंप्यूटर में यह पाठ संग्रहित है। संख्यात्मक आंकड़ों को एएससीआईआई अंकों के रूप में संग्रहित करने की वजह से समझें। कंप्यूटर में सांख्यिक डेटा को कैसे संग्रहीत किया जाता है, यह बदलने के लिए यूजेज क्लॉज का उपयोग करने में सक्षम हो.जब सिंक्रोनिज्ड क्लॉज का उपयोग कब और कैसे करें। आवश्यकताएँ COBOL की पहचान कोबोल में डेटा घोषित करना बेसिक प्रक्रिया डिवीजन कोबोल में चयन कोबोल में बदलाव कोबोल में बदलाव अनुक्रमिक फ़ाइलों का परिचय प्रक्रमिक क्रमिक फाइलें अनुक्रमिक फाइलों को पढ़ना संपादित चित्र कंप्यूटर अपने डेटा को द्विआधारी अंकों के रूप में संग्रहीत करते हैं। कार्डों की संख्या (सकारात्मक पूर्णांक) के अलावा कंप्यूटर मेमोरी में संग्रहित सभी अन्य डेटा किसी प्रकार के स्वरूपण सम्मेलन का उपयोग करता है। उदाहरण के लिए, पाठ डेटा, एन्कोडिंग अनुक्रम जैसे एएससीआईआई या ईबीसीडीआईसी का उपयोग कर जमा हो जाता है। एक एन्कोडिंग सिस्टम केवल ऐसा एक सम्मेलन है जो निर्दिष्ट करता है कि किसी विशेष वर्ण का प्रतिनिधित्व करने के लिए बिट्स का एक विशिष्ट सेट उपयोग किया जाता है। उदाहरण के लिए, नीचे दिए गए चित्र में एएससीआईआई और ईबीसीडीआईसी एन्कोडिंग अनुक्रमों में ऊपरी केस उद्धरण चिह्न का प्रतिनिधित्व करने के लिए इस्तेमाल की जाने वाली बिट विन्यास को दिखाया गया है। संख्यात्मक डेटा पाठ अंकों (एएससीआईआईआई अंकों) के रूप में या शुद्ध द्विआधारी संख्या (कार्डिनल मानों के मामले में) के रूप में या दो परिमाण बाइनरी संख्याओं (पूर्णांक के मामले में) के रूप में या दशमलव संख्याओं (बीसीडी का उपयोग करके) के रूप में आयोजित किया जा सकता है, या वास्तविक संख्या के रूप में (फ़्लोटिंग बिंदु संख्याओं के लिए आईईईई विनिर्देशन जैसे वास्तविक संख्या प्रारूप का उपयोग करना) USAGE क्लॉज का उपयोग यह निर्दिष्ट करने के लिए किया जाता है कि कंप्यूटर मेमोरी में डेटा आइटम कैसे संग्रहीत किया जाए कोबोल कार्यक्रम में घोषित प्रत्येक वैरिएबल एक यूजेज क्लाज है - यहां तक कि जब कोई स्पष्ट खंड निर्दिष्ट नहीं किया गया हो। जब कोई स्पष्ट USAGE खंड नहीं होता है, तो डिफ़ॉल्ट - USAGE IS DISPLAY है - लागू किया जाता है। उपयोग के साथ समस्याएं प्रदर्शन है आधुनिक कंप्यूटरों की गति का मतलब है कि यह USAGE खंड का उपयोग करने के प्रयास के लिए शायद ही उतना ही महत्त्वपूर्ण है जब तक डेटा आइटम हजारों कम्प्यूटेशंस में उपयोग नहीं होने जा रहा है। पोर्टेबिलिटी के कारणों के लिए उपयोग विवरण कभी भी रिकॉर्ड विवरण में इस्तेमाल नहीं किया जाना चाहिए। यदि फ़ाइल को कंप्यूटर के एक अलग मेमोरी पर पढ़ा जाता है तो हमें इसकी कोई गारंटी नहीं है कि डेटा को सही ढंग से व्याख्या किया जाएगा। यहां तक कि कंप्यूटर के समान बनाते हुए, रिकॉर्ड वर्णन में USAGE खंड का उपयोग करने का अर्थ है कि फ़ाइल में डेटा शायद अन्य प्रोग्रामिंग भाषाओं या उपयोगिता कार्यक्रमों या पाठ संपादकों द्वारा नहीं समझा जाएगा। टेक्स्ट आइटम्स के लिए, या संख्यात्मक वस्तुओं के लिए जिन्हें किसी कम्प्यूटेशन (अकाउंट नंबर, फोन नंबर आदि) में उपयोग नहीं किया जा सकता है, यूजियेज का डिफ़ॉल्ट डिस्प्ले कोई समस्या नहीं प्रस्तुत करता है, लेकिन संख्यात्मक वस्तुओं के लिए, जिस पर कुछ गणना की जाती है डिफ़ॉल्ट उपयोग डेटा को स्टोर करने का सबसे कारगर तरीका नहीं है। जब संख्यात्मक आइटम (PIC 9 आइटम) का उपयोग DISPLAY का उपयोग होता है वे ASCII अंकों के रूप में संग्रहित होते हैं (नीचे ASCII तालिका में एएससीआईआई अंक 0- 9 देखें)। निम्नलिखित प्रोग्राम खंड पर विचार करें क्या होगा यदि कंप्यूटेशन को सीधे इस प्रारूप में संग्रहीत संख्याओं पर किया जाता है क्योंकि डेटा आइटम में से कोई भी एक स्पष्ट उपखंड खंड नहीं है, जिसके लिए वे डिफ़ॉल्ट हैं - USAGE IS DISPLAY है। इसका अर्थ है कि मान Num1, Num2 और Num3 में मान ASCII अंक के रूप में संग्रहीत किए जाते हैं। यह प्रभाव कैसे गणना करता है यदि आप नीचे एएससीआईआई तालिका की जांच करते हैं तो आप देखेंगे कि अंक 4 (Num1 में मान) को 00110100 के रूप में एन्कोड किया गया है और अंक 1 00110001 के रूप में एन्कोड किया गया है। जब इन ये बाइनरी संख्याएं एक साथ जोड़ दी जाती हैं, तो परिणाम 01100101 है जो कि लोअर केस अक्षरों के उद्धरण चिह्न के लिए एएससीआईआई कोड है। राशि 4 1 ई गणना नहीं करता है जब आंकलन संख्यात्मक डेटा आइटम के साथ किया जाता है जिसका उपयोग प्रदर्शित होता है, तो कंप्यूटर को गणनात्मक मानों को उनके बाइनरी समकक्षों में कनवर्ट करने से पहले कन्वर्ट करना पड़ता है। जब परिणाम की गणना की गई है, तो कंप्यूटर को इसे एएससीआईआईआईआईए अंकों के लिए फिर से करना होगा। एएससीआईआई अंकों से रूपांतरण और कंप्यूटेशन को धीमा कर देता है। इस कारण से, कम्प्यूटेशन में भारी रूप से शामिल डेटा अक्सर उपयोग के लिए उपयोग किए जाने वाले उपयोगों में से एक का उपयोग करके घोषित किया जाता है जैसे कि यूजेज आईएस कम्प्यूटेशनल समूह वस्तुओं को हमेशा अल्फ़ान्यूमेरिक के रूप में व्यवहार किया जाता है और यह अधीनस्थ कंप आइटम होने पर समस्या पैदा कर सकता है। उदाहरण के लिए, मान लीजिए हमारे पास एक बयान था - जैसे कि जीरोस टू ग्रुप 2 कार्यक्रम विपरीत में सतह पर ऐसा लगता है कि यह कथन संख्यात्मक मान 0 से NumItem1 और NumItem2 पर जा रहा है, लेकिन वास्तव में इन वस्तुओं में जो स्थानांतरित किया गया है वह ASCII अंक quot0quot है। जब किसी गणना में NumItem1 या NumItem2 का उपयोग करने का प्रयास किया जाता है तो प्रोग्राम क्रैश हो जाएगा क्योंकि इन डेटा-वस्तुओं में गैर-संख्यात्मक डेटा शामिल है USAGE खंड का उपयोग किसी भी डेटा विवरण प्रविष्टि के साथ किया जा सकता है, जिसमें 66 या 88 के स्तर की संख्या शामिल है। जब यूजेज खंड को समूह आइटम के लिए घोषित किया जाता है, निर्दिष्ट समूह समूह में प्रत्येक आइटम पर लागू किया जाता है। The group item itself is still treated as an alphanumeric data-item (see example program below).USAGE IS COMPUTATIONAL or COMP or BINARY are synonyms of one another. The USAGE IS INDEX clause is used to provide an optimized table subscript. When a table is the target of a SEARCH statement it must have an associated index item (see the Search Tutorial). Any item declared with USAGE IS INDEX can only appear in: - A SEARCH or SET statement - A relation condition - The USING phrase of the PROCEDURE DIVISION - The USING phrase of the CALL statement The picture string of a COMP or PACKED-DECIMAL item can contain only the symbols 9, S, V andor P. The picture clause used for COMP or PACKED-DECIMAL items must be numeric. 1QuadWord (8 Bytes) PACKED-DECIMAL Data-items declared as PACKED-DECIMAL are held in binary-coded-decimal (BCD) form. Instead of representing the value as a single binary number, the binary value of each digit is held in a nibble (half a byte). The sign is held in a separate nibble in the least significant position of the item (see diagram below). General USAGE notes The USAGE clause is one of the areas where many vendors have introduced extensions to the COBOL standard. It is not uncommon to see COMP-1. COMP-2. COMP-3. COMP-4. COMP-5 and POINTER usage items in programs written using these extensions. Even though COMP-1 and COMP-2 are extensions to the COBOL standard, vendors seem to use identical representations for these usages. COMP-1 is usually defined as a single precision, floating point number, adhering to the IEEE specification for such numbers (Real or Float in typed languages) and COMP-2 is usually defined as a double precision, floating point number (LongReal or Double in typed languages). The SYNCHRONIZED clause The SYNCHRONIZED clause is sometimes used with USAGE IS COMP or USAGE IS INDEX items. It is used to optimize speed of processing but it does so at the expense of increased storage requirements. Many computer memories are organized in such a way that there are natural addressing boundaries - such as word boundaries. If no special action is taken some data items in memory may straddle theses boundaries. This may cause a processing overhead as the CPU may need two fetch cycles to retrieve the data from memory. The SYNCHRONIZED clause is used to explicitly align COMP and INDEX items along their natural word boundaries. Without the SYNCHRONIZED clause, data-items are aligned on byte boundaries. The word SYNC can be used instead of SYNCHRONIZED . The effect of the synchronized clause is implementation dependant. You will need to read your vendor manual to see how it works on your computer (in some cases it may have no effect). For the purpose of illustrating how the SYNCHRONIZED clause works let us assume that a COBOL program is running on a word-oriented computer where the CPU fetches data from memory a word at a time. In this program we want to perform a calculation on the number stored in the variable TwoBytes (as declared in the diagram below). Because of the way the data items have been declared, the number stored in TwoBytes straddles a word boundary. In order to use the number, the CPU has to execute two fetch cycles - one to get the first part of the number in Word2 and the second to get the second part of the number in Word3. This double fetch slows down calculations. Now consider the impact of using the SYNCHRONIZED clause. The number in TwoBytes is now aligned along the word boundary, so the CPU only has to do one fetch cycle to retrieve the number from memory. This speeds up processing but at the expense of wasting some storage (the second byte of Word2 is no longer used). Copyright Notice These COBOL course materials are the copyright property of Michael Coughlan. सर्वाधिकार सुरक्षित। No part of these course materials may be reproduced in any form or by any means - graphic, electronic, mechanical, photocopying, printing, recording, taping or stored in an information storage and retrieval system - without the written permission of the author. (c) Michael CoughlanIBM VS Cobol II Compiler Options This section contains information on the IBM VS Cobol II compiler and library. It contains information on compiler options. For information on Compiler Directing Statements check this page out. Note: The defaults listed with the options below are the VS COBOL II defaults shipped with the product. They may have been changed by the installation. The minimum abreviation is the part that is capitialized. Note: The EXIT option cannot be specified in a PROCESS (CBL) statement. It can only be specified at invocation in the PARM field of JCL (under TSO, specify it in a command argument), or at installation time. INEXIT(str1,mod1) The compiler reads source code from a user-supplied load module (where mod1 is the module name), instead of SYSIN. LIBEXIT(str2,mod2) The compiler obtains copy code from a user-supplied load module (where mod2 is the module name), instead of library-name or SYSLIB. For use with either COPY or BASIS statements. PRTEXIT(str3,mod3) The compiler passes printer destined output to the user-supplied load module (where mod3 is the module name), instead of SYSPRINT. The module names mod1, mod2, mod3, can refer to the same module. The suboptions str1, str2, str3, are optional. They are character strings up to 64 characters in length and enclosed in apostrophes, that are passed to the exit module. Any character is allowed, but included apostrophes must be doubled, and lowercase characters are folded to uppercase. For more details on using EXIT to provide user-exits, see Using EXIT to Provide User-Exits in topic 5.2.2.9. Use NOFLAG to suppress error flagging. NOFLAG will not suppress error messages for compiler options. If you experience a problem with this page, please send a message to JTateJaTomes including a description of the problem.
Comments
Post a Comment