Schema.ini के लिए कनेक्शन स्ट्रिंग पैरामीटर
एक schema.ini
बनाना एक्सेस से टेक्स्ट फाइलों को खोलना या लिंक करना दो संभावित तरीकों में से एक है जिसका उपयोग एक्सेस से फाइलों में निहित डेटा के साथ काम करने के लिए किया जा सकता है। पिछले लेख में, हमने टेक्स्ट फ़ाइल के कनेक्शन स्ट्रिंग पैरामीटर्स को देखा था। हमने टेक्स्ट फ़ाइलों को एक्सेस करने में मदद करने के लिए अतिरिक्त स्कीमा जानकारी की आवश्यकता पर भी चर्चा की। माइक्रोसॉफ्ट के पास schema.ini
. के बारे में एक पेज है , लेकिन कुछ चीजें तुरंत स्पष्ट नहीं होती हैं इसलिए हम इसे यहां कवर करेंगे।
schema.ini
फ़ाइल
प्रत्येक फ़ोल्डर में schema.ini
. नाम की एक फ़ाइल हो सकती है जहाँ हम पाठ फ़ाइलों के सभी संभावित स्वरूपों को परिभाषित कर सकते हैं, जिनकी हम फ़ोल्डर में अपेक्षा करते हैं। प्रत्येक टेक्स्ट फ़ाइल के लिए, हमें फ़ाइल नाम के साथ एक सेक्शन शुरू करना होगा और फिर संरचना का वर्णन करना होगा। हम एक न्यूनतम नमूना अनुभाग से शुरू करेंगे और फिर प्रत्येक भाग का विश्लेषण करेंगे। सभी पाठ फ़ाइलों की गणना करना आवश्यक नहीं है। कोई भी टेक्स्ट फ़ाइल जो schema.ini
. द्वारा वर्णित नहीं है बेहतर या बदतर के लिए डिफ़ॉल्ट सेटिंग का उपयोग करके आसानी से संभाला जाएगा। आइए schema.ini
. की संरचना को देखें ।
[products.txt] Format=CSVDelimited ColNameHeader=True MaxScanRows=0 Col1=Products Text Col2=Count Long
ध्यान दें कि किसी अनुभाग को शुरू करने के लिए पहली पंक्ति में एक टेक्स्ट फ़ाइल का संदर्भ होना चाहिए। अनुभाग की शुरुआत को इंगित करने के लिए इसमें कोष्ठक भी होने चाहिए। जैसा कि आप पहले से ही जानते होंगे, एक schema.ini
एक से अधिक टेक्स्ट फ़ाइलों का वर्णन कर सकता है, इसलिए ब्रैकेट वाली पंक्ति प्रत्येक टेक्स्ट फ़ाइल की स्कीमा को अलग रखने में मदद करती है।
पंक्तियों का अगला सेट फ़ाइल के समग्र स्वरूप से संबंधित है, और एक्सेस को टेक्स्ट फ़ाइलों को कैसे संसाधित करना चाहिए। हम संकेत कर सकते हैं कि किसी टेक्स्ट फ़ाइल में हेडर हैं, स्कैन करने के लिए कितनी पंक्तियां हैं, किस कोड पेज का उपयोग करना है, इत्यादि।
पंक्तियों का अंतिम सेट अलग-अलग स्तंभों, उनके नाम, डेटा प्रकार और चौड़ाई का वर्णन करता है।
हम उन 2 सेटों के लिए मान्य विकल्पों और संभावित मानों की समीक्षा करेंगे।
संपूर्ण टेक्स्ट फ़ाइल की संरचना का वर्णन करने के विकल्प
आपको टेक्स्ट फ़ाइल के समग्र स्वरूप का वर्णन करने के लिए उपलब्ध मान्य विकल्पों की एक सूची दिखाई देगी। कम से कम Format
. को निर्दिष्ट करना सामान्य है और ColNameHeader
लेकिन सभी संभावित सामग्री वैकल्पिक हैं। जब भी उन्हें छोड़ दिया जाता है, तो नीचे बताए अनुसार डिफ़ॉल्ट मानों का उपयोग किया जाएगा। आइए देखें कि हम किसी दिए गए टेक्स्ट फ़ाइल के प्रारूप का वर्णन कैसे कर सकते हैं।
समग्र संरचना विकल्प
जैसा कि उल्लेख किया गया है, वे वैकल्पिक हैं, हालांकि शायद ही कभी छोड़े गए हैं। फिर भी, डिफ़ॉल्ट टेक्स्ट इंजन रजिस्ट्री कुंजियों से आते हैं। रजिस्ट्री कुंजियों के बारे में अधिक विवरण यहां पाया जा सकता है।
Format
:टेक्स्ट फ़ाइलों के स्वरूप को इंगित करता है। यदि छोड़ा गया है, तो टेक्स्ट इंजन रजिस्ट्री कुंजी का उपयोग करता है,Format
. मान्य मान हैं:TabDelimited
:टैब कॉलम को परिसीमित करते हैं।CSVDelimited
:अल्पविराम एक CSV फ़ाइल की तरह स्तंभों को परिसीमित करते हैं।Delimited(*)
:एक एकल वर्ण स्तंभों को परिसीमित करता है।"
. को छोड़कर कोई भी वर्ण हो सकता है चरित्र। उदाहरण के लिए,|
. के साथ सीमांकित टेक्स्ट फ़ाइल चरित्र को रिपोर्ट करना चाहिएFormat=Delimited(|)
।FixedLength
:स्तंभ निश्चित-लंबाई वाले हैं; सामग्री को तदनुसार गद्देदार किया जाना चाहिए। सभी स्तंभों की एक निश्चित चौड़ाई होनी चाहिए।
CharacterSet
:टेक्स्ट फ़ाइल को पढ़ने के लिए एक विशिष्ट कोड पेज का उपयोग करता है। संभावित मानANSI
. हो सकते हैं ,OEM
,Unicode
या वांछित कोड पृष्ठों का प्रतिनिधित्व करने वाला कोई भी संख्यात्मक मान। आपकी विंडोज मशीन पर समर्थित सभी संभावित कोड पेजों का पता लगाने के लिए, रजिस्ट्री कुंजीComputer\HKEY_CLASSES_ROOT\MIME\Database\Codepage\
में देखें। . उदाहरण के लिए, यदि आप utf-8 एन्कोडिंग का उपयोग करना चाहते हैं, तो आपCharacterSet=65001
निर्दिष्ट कर सकते हैं ।ColNameHeader
:इंगित करता है कि पहली पंक्ति में कॉलम नाम हैं या नहीं। छोड़े जाने पर, टेक्स्ट इंजन रजिस्ट्री कुंजी का उपयोग करता है,FirstRowHasNames
. मान या तोTrue
हो सकते हैं याFalse
।MaxScanRows
:पंक्तियों की संख्या संभावित डेटा प्रकार का अनुमान लगाने के लिए एक्सेस को टेक्स्ट फ़ाइल में स्कैन करना चाहिए। यदि 0 पर सेट है, तो एक्सेस पूरी फाइल को स्कैन करेगा। टेक्स्ट इंजन रजिस्ट्री कुंजीMaxScanRows
छोड़े जाने पर उपयोग किया जाता है।
स्थानीयकरण विकल्प
वे विकल्प मुख्य रूप से दिनांक, समय या मुद्रा में एन्कोड किए गए डेटा को स्थानीयकृत करने से संबंधित हैं। वे सभी विकल्प वैकल्पिक हैं और जब भी इसे छोड़ा जाता है, तो विंडोज़ क्षेत्र सेटिंग्स का उपयोग किया जाता है।
DateTimeFormat
:उपयोग करने के लिए दिनांक/समय प्रारूप।DecimalSymbol
:किसी एकल वर्ण का उपयोग किसी संख्या के अभिन्न और भिन्नात्मक भागों के बीच विभाजक के रूप में किया जाता है।NumberDigits
:किसी संख्या के भिन्नात्मक भाग में प्रयुक्त अंकों की संख्या।NumberLeadingZeroes
:इंगित करता है कि क्या -1 से अधिक और 1 से कम संख्याओं के लिए एक अग्रणी शून्य होना चाहिए। या तोTrue
होना चाहिए याFalse
।CurrencySymbol
:मुद्रा के रूप में व्याख्या किए जाने वाले प्रतीक की पहचान करता है।CurrencyPosFormat
:वर्णन करता है कि टेक्स्ट फ़ाइल में मौद्रिक राशियों को कैसे रिपोर्ट किया जाना चाहिए। इस सेटिंग के लिए उपयोग करने के लिए चार मान्य मान हैं, जिन्हें संख्या 0 से 3 तक दर्शाया गया है। ध्यान दें कि उदाहरण$
का उपयोग करता है। लेकिन वास्तविक उपयोग में, यहCurrencySymbol
द्वारा परिभाषित वास्तविक मुद्रा प्रतीक का उपयोग करेगा या विंडोज की सेटिंग से।0
:बिना स्थान वाला उपसर्ग (उदा. $1)1
:बिना स्थान वाला प्रत्यय (1$)
2
:बीच में रिक्त स्थान के साथ उपसर्ग ($ 1)3
:(1 $)
. के बीच रिक्त स्थान के साथ प्रत्यय
CurrencyDigits
:मुद्रा राशि के भिन्नात्मक भाग में अंकों की संख्या।CurrencyNegFormat
:एक नकारात्मक मुद्रा राशि के स्वरूपण को इंगित करता है। यह 0-15 के बीच का मान है जैसा कि नीचे दिखाया गया है। ध्यान दें कि उदाहरण$
. का उपयोग करता है लेकिन वास्तविक उपयोग में, यहCurrencySymbol
द्वारा परिभाषित वास्तविक मुद्रा प्रतीक का उपयोग करेगा या विंडोज की सेटिंग से।0
:($1)1
:-$12
:$-13
:$1-
4
:(1$)5
:-$16
:1-$7
:1$-
8
:-1 $9
:-$ 110
:1 $-11
:$ 1-
12
:$ -113
:1- $14
:($ 1)15
:(1 $)
CurrencyThousandSymbol
:मुद्रा राशि में हज़ारों को अलग करने का संकेत देने वाला एकल वर्ण। यदि छोड़ा गया है, तो विंडोज़ की सेटिंग का उपयोग किया जाता है।CurrencyDecimalSymbol
:मुद्रा राशि के दशमलव को इंगित करने के लिए एक एकल वर्ण।
कॉलम परिभाषा विकल्प
हमने देखा कि हम फ़ाइल के समग्र प्रारूप से कैसे निपट सकते हैं लेकिन हमें अलग-अलग कॉलम के बारे में अधिक जानकारी देने की आवश्यकता है। इससे भी महत्वपूर्ण बात यह है कि हमें अपेक्षित डेटा प्रकार के कॉलम को मैप करने में सक्षम होना चाहिए। Ergo, schema.ini
. का तीसरा खंड प्रत्येक कॉलम का वर्णन करना चाहिए, जितनी पंक्तियों के साथ लक्ष्य टेक्स्ट फ़ाइल में कॉलम हैं। कॉलम परिभाषा के लिए सामान्य प्रारूप इस तरह दिख सकता है:
ColN=Name Type Width #
यह ध्यान रखना महत्वपूर्ण है कि उपसर्ग ColN=
. को छोड़कर , सभी भाग वैकल्पिक हैं लेकिन आप छोड़ सकते हैं या नहीं, यह अन्य कारकों पर निर्भर करेगा जैसा कि नीचे चर्चा की गई है।
ColN=
:एक अनिवार्य उपसर्ग जो पंक्ति के प्रत्येक प्रारंभ पर होना चाहिए।N
1 से शुरू होने वाली और बढ़ती हुई संख्या होनी चाहिए।Name
:कॉलम को नाम देता है। अगरColNameHeader
True
. पर सेट है ,Name
पैरामीटर छोड़ा जा सकता है। हालांकि, अगर यहFalse
है , तो आपकोName
. निर्दिष्ट करना होगा त्रुटियों से बचने के लिए।Type
:डेटा प्रकार को इंगित करता है। यदि छोड़ा गया है, तो एक्सेस स्कैन की गई पंक्तियों के आधार पर अपने सर्वोत्तम अनुमान का उपयोग करेगा, जोMaxScanRows
द्वारा शासित है। विकल्प।Type
उन मान्य मानों में से एक पर सेट किया जाना चाहिए। समानार्थी शब्द कैनोनिकल कीवर्ड के बाद सूचीबद्ध हैं:Bit
,Boolean
Byte
Short
,Integer
Long
Currency
Single
Double
,Float
DateTime
Text
,Char
Memo
,LongChar
Date
Width #
:कॉलम की चौड़ाई को दर्शाता है। यदि यह निर्दिष्ट है, तो शाब्दिकWidth
शामिल किया जाना चाहिए और फिर एक संख्या के बाद। यदि आप यह बताना चाहते हैं कि एक कॉलम 50 वर्णों का है, तो आप लिखेंगे:
Col17=ProductDescription Text Width 50
निश्चित चौड़ाई वाली फ़ाइलों के लिए,Width
ये जरूरी है। सीमांकित फ़ाइलों के साथ, आप इसे छोड़ सकते हैं। हालांकि, एक्सेस इस जानकारी का उपयोग टेक्स्ट फ़ील्ड के लिए लंबाई को सीमित करने और संभवतः सामग्री को छोटा करने के लिए करेगा। अन्य डेटा प्रकारों के लिए चौड़ाई का कोई प्रभाव नहीं पड़ता है।
निष्कर्ष
आपने देखा है कि आप schema.ini
. का उपयोग करके टेक्स्ट फ़ाइल के स्कीमा को कैसे नियंत्रित कर सकते हैं जिसे आप उस फोल्डर में बना सकते हैं जहां टेक्स्ट फाइल रहती है। आप यह भी देख सकते हैं कि schema.ini
आपको क्षेत्रीय सेटिंग्स पर अधिक विस्तृत नियंत्रण देता है, जो तब मददगार हो सकता है जब आप अंतरराष्ट्रीय डेटा के साथ काम कर रहे हों और आप मुद्रा या दिनांक स्वरूपण को नियंत्रित नहीं कर सकते। अगले लेख में, आप एक्सेस सिस्टम टेबल का उपयोग करके टेक्स्ट फ़ाइल की संरचना का वर्णन करने की वैकल्पिक विधि को देखेंगे।