डीबीएफ से एक्सएमएल में कनवर्टर। DBF फ़ाइल को एक्सेल में खोलना और परिवर्तित करना

आज, एक्सएमएल विभिन्न समाधानों के बीच डेटा का त्वरित और कुशलता से आदान-प्रदान करने के लिए उद्योग मानक है। हालांकि, ऐसे कई कार्य हैं जहां उपयोगकर्ताओं को एक अलग रूप में एक्सएमएल डेटा का प्रतिनिधित्व करने की आवश्यकता होती है। इन मामलों में, कनवर्टर कार्यक्रमों की आवश्यकता होती है। वे XML और लोकप्रिय तालिका स्वरूपों के बीच की खाई को पाटते हैं। यदि आपको XML डेटा को नियमित रूप से परिवर्तित करने की आवश्यकता है, तो आपको निश्चित रूप से उन्नत XML कनवर्टर का उपयोग करने की आवश्यकता है! उन्नत एक्सएमएल कन्वर्टर के साथ अब आपको जटिल एक्सएमएल ट्रांसफॉर्मेशन और एक्सएसएल स्टाइलशीट लिखने की जरूरत नहीं है। एक्सएमएल को एचटीएमएल, सीएसवी, डीबीएफ, एक्सएलएस, एसक्यूएल में एक पल में कनवर्ट करें! उन्नत एक्सएमएल कन्वर्टर आपको एचटीएमएल, सीएसवी, डीबीएफ, एक्सएलएस और एसक्यूएल जैसे अन्य प्रारूपों में कनवर्ट करने में मदद करेगा। जैसे ही XML फ़ाइल लोड हो जाती है और आप "कन्वर्ट" बटन दबाते हैं, प्रोग्राम एक सारणीबद्ध प्रारूप में तेज़ और उच्च गुणवत्ता वाला आउटपुट देगा। सही आउटपुट सुनिश्चित करने के लिए, उन्नत एक्सएमएल कन्वर्टर मूल एक्सएमएल फ़ाइल की पदानुक्रमित संरचना का उपयोग करता है। आप आउटपुट फ़ाइल में प्रस्तुत किए जाने वाले डेटा का चयन कर सकते हैं। आप बैच रन का उपयोग करके एक से अधिक फ़ाइल को कनवर्ट भी कर सकते हैं। उन्नत XML कनवर्टर के साथ अब आपको जटिल रूपांतरण या XSL रूपांतरण स्क्रिप्ट लिखने की आवश्यकता नहीं है। एक्सएमएल को एचटीएमएल, सीएसवी, डीबीएफ, एक्सएलएस, एसक्यूएल में कनवर्ट करना तेज़ और सहज ज्ञान युक्त है!

उन्नत एक्सएमएल कनवर्टर डाउनलोड करें

आप उन्नत एक्सएमएल कनवर्टर के साथ सभी एक्सएमएल डेटा या विशिष्ट टैग से केवल डेटा निकाल सकते हैं। निकाले गए डेटा को देखते समय, आप जल्दी से विभिन्न दृश्यों के बीच स्विच कर सकते हैं (नए विश्लेषण के बिना और डेटा को पुनः लोड किए बिना)। आप प्रत्येक आउटपुट स्वरूप के लिए निर्यात विकल्प सेट कर सकते हैं (जैसे HTML तालिका शैलियाँ और निर्यात किए गए फ़ील्ड के लिए CSV सीमांकक, और अन्य विकल्प)। उन्नत XML कनवर्टर आपको सभी तालिकाओं को एक फ़ाइल या कई फ़ाइलों में अलग-अलग सहेजने की अनुमति देता है, साथ ही पूर्वावलोकन और आउटपुट विकल्पों को लचीले ढंग से कॉन्फ़िगर करने की अनुमति देता है।

सॉफ़्टवेयर को ड्राइवरों या अतिरिक्त घटकों की स्थापना की आवश्यकता नहीं है क्योंकि यह इंटरनेट एक्सप्लोरर पार्सर पर बनाया गया है जो अधिकांश सिस्टम पर उपलब्ध है। उन्नत XML कनवर्टर को .NET Framework या XML स्कीमा की आवश्यकता नहीं है। कार्यक्रम को एक्सएमएल फ़ाइल संरचना के गहन ज्ञान की आवश्यकता नहीं है और बड़ी मात्रा में एक्सएमएल डेटा के रूपांतरण की सुविधा प्रदान करता है। एक उपयोगकर्ता के रूप में, आप सबसे जटिल XML दस्तावेज़ों को विभिन्न दृश्य तालिकाओं में देख पाएंगे जो पढ़ने में आसान हैं। यह डेटाबेस या विशेष सिस्टम में सूचना स्थानांतरित करने के लिए बहुत सुविधाजनक है, जिसके लिए सादे पाठ के करीब प्रारूप की आवश्यकता होती है।

यदि आप XML डेटा को परिवर्तित करने के लिए एक तेज़ सिस्टम की तलाश कर रहे हैं, तो उन्नत XML कनवर्टर सबसे अच्छा विकल्प है! किफ़ायती और उपयोग में आसान प्रोग्राम मिनटों में जटिल डेटा ट्रांसफ़ॉर्मेशन करता है!

उन्नत एक्सएमएल कन्वर्टर का नवीनतम संस्करण एक्सएमएल फाइलों से डेटा निकालने और इसे लोकप्रिय एचटीएमएल, डीबीएफ, सीएसवी, एक्सेल और एसक्यूएल प्रारूपों में सहेजने का एक सरल, तेज़ और अत्यधिक कुशल तरीका प्रदान करता है।

उन्नत एक्सएमएल कनवर्टर के साथ आप यह कर सकते हैं:


  • केवल विशिष्ट टैग से सभी XML डेटा या डेटा निकालें,
  • विभिन्न डेटा प्रस्तुति विकल्पों के बीच स्विच करें (डेटा की पुन: पार्सिंग की आवश्यकता नहीं है),
  • प्रत्येक आउटपुट स्वरूप के लिए कस्टम कनवर्टर विकल्प कॉन्फ़िगर करें (जैसे HTML स्टाइलशीट या CSV सीमांकक, और अन्य विकल्प),
  • XML से निकाले गए सभी तालिकाओं को एक फ़ाइल में या कई आउटपुट फ़ाइलों में सहेजें।

संभवत: आपको अक्सर एक को परिवर्तित करने की आवश्यकता होती है एक्सएमएलफ़ाइल या फ़ोल्डर के साथ एक्सएमएलएक या कई में फ़ाइलें डीबीएफफ़ाइलें। समस्या यह है कि एक्सएमएलसंरचना, इसके पदानुक्रम और घोंसले के स्तर फ़ाइल से फ़ाइल में भिन्न होते हैं। इस लेख में, हम इस पर एक विस्तृत नज़र डालेंगे कि कैसे आयात किया जाए एक्सएमएलएक फ्लैट के लिए किसी भी संरचना की फाइल डीबीएफमेज़।

नामक एक नई सुविधा कस्टम एक्सएमएल आयात करेंमें लागू किया गया था DBF कमांडर प्रोफेशनलसंस्करण 2.7 (बिल्ड 40)। यह कमांड कमांड लाइन इंटरफेस के माध्यम से उपलब्ध है। वाक्यविन्यास इस प्रकार है:

dbfcommander.exe -icx [<-attr>]

जैसा कि आप देख सकते हैं, चार पैरामीटर हैं:

  • -आईसीएक्स- साधन कस्टम एक्सएमएल आयात करें.
  • - फ़ाइल का पूरा नाम (पथ सहित), या फ़ोल्डर का नाम जिसमें एक्सएमएलफ़ाइलें आयात की जानी हैं। आप केवल कुछ फ़ाइलों को मास्क का उपयोग करके भी लोड कर सकते हैं, उदा. " डी:\xml\some_prefix_*.xml". इस मामले में, केवल वे फ़ाइलें जिनका एक्सटेंशन है एक्सएमएलऔर जिसका नाम शुरू होता है" some_prefix"में परिवर्तित हो जाएगा डीबीएफ. यदि आप फ़ोल्डर की सभी फाइलों को कनवर्ट करना चाहते हैं, तो निम्न मास्क का उपयोग करें: " डी:\xml\*.xml".
  • - गंतव्य फ़ोल्डर, उदा। " डी:\डीबीएफ\"। इस मामले में, सभी मौजूदा डीबीएफफाइलें लिखी जाएंगी। यदि आप स्रोत आयात करना चाहते हैं एक्सएमएलएक में फ़ाइलें डीबीएफफ़ाइल, सटीक फ़ाइल नाम का उपयोग करें, उदा। " डी:\dbf\result.dbf"। लेकिन इस मामले में, रूपांतरण प्रक्रिया शुरू होने से पहले परिणामी फ़ाइल बनाई जानी चाहिए, अन्यथा एक त्रुटि होगी। यदि कोई एकल डीबीएफफ़ाइल का उपयोग परिणामी डेटा के लिए किया जाता है, इसे फिर से नहीं लिखा जाएगा, और प्रत्येक नया रिकॉर्ड उसी फ़ाइल में डाला जाएगा।
  • - तथाकथित का पूरा नाम " मानचित्र फ़ाइल", जो एक सरल है डीबीएफस्रोत की परिभाषा और परिणामी फ़ाइल फ़ील्ड वाली फ़ाइल। नीचे हम मैप-फाइल बनाने की प्रक्रिया पर विचार करेंगे।
  • <-attr> - यदि आप "कुछ विशेषताओं वाले टैग आयात करना चाहते हैं तो इस पैरामीटर का उपयोग करें।

DBF फ़ील्ड परिभाषा, या मैप-फ़ाइल कैसे बनाएं

उदाहरण का उपयोग करके कुछ सीखना हमेशा बेहतर होता है। हमारी स्थिति में, हमें कुछ प्रसिद्ध की आवश्यकता है एक्सएमएल. आइए एक लेते हैं आरएसएस समाचार फ़ीड एक्सएमएलफ़ाइल (उपलब्ध):

जैसा कि आप देख सकते हैं, चार हैं<वस्तु> तत्वों नेस्टेड<चैनल> तत्व, जो स्वयं शीर्ष-स्तर में नेस्टेड है<आरएसएस> तत्व। घोंसले के समान स्तर के तत्व भी होते हैं जैसे<वस्तु> तत्व:<जनक>, <शीर्षक>, <विवरण>, आदि

मान लीजिए कि प्रत्येक<वस्तु> तत्व को परिणामी में एक पंक्ति के रूप में दर्शाया जाना चाहिए डीबीएफफ़ाइल। तो हमारी फाइल में चार रिकॉर्ड होंगे।

मैप-फाइल बनाने के लिए, पहले परिणामी बनाएं डीबीएफफ़ाइल। हमें इसकी आवश्यकता है क्योंकि तब हम "कुछ ही क्लिक में एक मानचित्र-फ़ाइल बनाने में सक्षम होंगे। लॉन्च DBF कमांडर प्रोफेशनलक्लिक करें फ़ाइल -> नया, और एक बनाएँ डीबीएफफ़ाइल। के मामले में आरएसएस एक्सएमएलफ़ाइल, संरचना इस प्रकार है:

क्लिक ठीक है. डीबीएफफ़ाइल बनाई जाएगी, और अब इसका उपयोग हमारे आयात के लिए परिणामी फ़ाइल के रूप में किया जा सकता है एक्सएमएलप्रक्रिया। आप किसी भी उपलब्ध फ़ील्ड प्रकार का उपयोग कर सकते हैं: चरित्र, पूर्णांक, संख्यात्मक, दिनांक, आदि।

परिणामी फ़ाइल के आधार पर मानचित्र-फ़ाइल बनाने के लिए, क्लिक करें निर्यात संरचनाटूल बटन (ऊपर चित्र देखें)। जब सहेजें संवाद खुलता है, पथ और फ़ाइल नाम चुनें, और फिर संरचना को इस रूप में सहेजें डीबीएफफ़ाइल।

XML टैग का DBF फ़ील्ड से मिलान करना

हमें अभी एक और काम करना है: परिभाषित करें एक्सएमएलटैग जो परिणामी के क्षेत्रों में डाले जाने चाहिए डीबीएफफ़ाइल।

खोलें डीबीएफफ़ाइल आपने "अभी-अभी सहेजी है। क्लिक करें फ़ाइल -> संरचनाऔर नाम का एक नया फ़ील्ड जोड़ें" एक्सएमएलटैगनाम"की चरित्रप्रकार। आप चाहें तो मैप-फाइल में और फील्ड्स जोड़ सकते हैं। उदाहरण के लिए, "नाम की एक फ़ील्ड जोड़ें" टिप्पणी".क्लिक करें ठीक हैपरिवर्तनों को सहेजने के लिए।

अब नए की हर पंक्ति भरें" एक्सएमएलटैगनाम"के साथ क्षेत्र एक्सएमएलनोड्स पथ ("द्वारा अलग किया गया" -> ") जिसे संबंधित फ़ील्ड में डाला जाना चाहिए डीबीएफफ़ाइल:

इसका मतलब है कि का मूल्य एक्सएमएलनोड<शीर्षक> में नेस्टेड<चैनल> नोड जो शीर्ष-स्तर में नेस्टेड है<आरएसएस>, में डाला जाएगा " शीर्षक"फ़ील्ड; एक्सएमएलउपनाम" आरएसएस -> चैनल -> विवरण"में डाला जाएगा" वर्णन"क्षेत्र, और इसी तरह।

उपयोग करने के मामले में" -अत्रु"पैरामीटर, मानचित्र-फ़ाइल के पथों में संबंधित विशेषताएँ भी होनी चाहिए, जैसे:" आरएसएस संस्करण = "2.0" -> चैनल -> शीर्षक".

पर ध्यान देना" आइटम_डेस्क"फ़ील्ड। The एक्सएमएलउपनाम" आरएसएस -> चैनल -> आइटम -> विवरण"इसमें शामिल है सीडीएटीए अनुभागसाथ एचटीएमएलमार्कअप तो इसका टैग पथ "के साथ समाप्त होना चाहिए #cdata-अनुभाग"डोरी।

ऊपर की तस्वीर में आप जो आखिरी पंक्ति देख सकते हैं, वह तथाकथित " पंक्ति-टैग". यह टैग पथ अनुमति देता है डीबीएफ कमांडरजानने के लिए जो एक्सएमएलपरिणाम में टैग को एक नई पंक्ति के रूप में उपयोग किया जाना चाहिए डीबीएफफ़ाइल। हमारे मामले में, यह है" आरएसएस -> चैनल -> आइटम".

ध्यान दें कि मूल्य " नामपंक्ति-टैग वाले रिकॉर्ड के लिए फ़ील्ड खाली होनी चाहिए, ताकि प्रोग्राम पंक्ति-टैग को पहचान सके।

खैर, बस इतना ही। अब हम से आयात चला सकते हैं एक्सएमएलप्रति डीबीएफअपने आप। कमांड लाइन से या a . से निम्न कमांड निष्पादित करें बल्लाफ़ाइल:

dbfcommander.exe -icx "D:\xml\rss.xml" "D:\dbf\" "D:\map-file.dbf"

परिणामस्वरूप, हमें "नई फ़ाइल प्राप्त होगी" डी:\dbf\rss.dbf"जिसमें आयातित शामिल है एक्सएमएलजानकारी:

आप इस रूपांतरण में प्रयुक्त सभी फाइलों को .

नॉलेज बेस में अपना अच्छा काम भेजें सरल है। नीचे दिए गए फॉर्म का प्रयोग करें

छात्र, स्नातक छात्र, युवा वैज्ञानिक जो अपने अध्ययन और कार्य में ज्ञान आधार का उपयोग करते हैं, वे आपके बहुत आभारी रहेंगे।

http://www.allbest.ru/ पर होस्ट किया गया

प्रिडनेस्ट्रोवियन स्टेट यूनिवर्सिटी का नाम के नाम पर रखा गया है टी.जी. शेवचेंको

इंजीनियरिंग और प्रौद्योगिकी संस्थान

सूचना प्रौद्योगिकी विभाग और उत्पादन प्रक्रियाओं का स्वचालित नियंत्रण

अंतिम योग्यता कार्य

दिशा में 230100 "कंप्यूटर विज्ञान और कंप्यूटर प्रौद्योगिकी"

विषय: "डेटाबेस का प्रोग्राम-कन्वर्टर डीबीएफ फाइलों से एक्सएमएल फॉर्मेट फाइल में"

छात्र मैक्सिमोव दिमित्री ओलेगोविच

तिरस्पोल, 2013

परिचय

1. विषय क्षेत्र का अनुसंधान और विश्लेषण

1.1 कार्य का विवरण

1.2 अध्ययन के तहत समस्या की प्रासंगिकता का औचित्य

1.3 समान समस्याओं को हल करने के तरीकों का अवलोकन

1.4 समस्या का विवरण, सिस्टम की आवश्यकताएं, इनपुट डेटा और आउटपुट फॉर्म के लिए आवश्यकताएं

2. सॉफ्टवेयर उत्पाद की संरचना और वास्तुकला का डिजाइन

2.1 कार्यान्वयन के तरीकों और साधनों का चुनाव, इसका औचित्य

2.2 लागू एल्गोरिदम का विवरण

2.3 सॉफ्टवेयर उत्पाद की संरचना, वास्तुकला

2.4 कार्यात्मक आरेख, सॉफ्टवेयर उत्पाद की कार्यात्मक संरचना

3. सॉफ्टवेयर उत्पाद का कार्यान्वयन और परीक्षण

3.1 कार्यान्वयन विवरण

3.2 यूजर इंटरफेस का विवरण

3.3 सॉफ्टवेयर उत्पाद की विश्वसनीयता का परीक्षण और मूल्यांकन

3.4 लागत गणना

3.5 श्रम सुरक्षा

निष्कर्ष

सम्मेलनों, प्रतीकों, इकाइयों और शर्तों की सूची

प्रयुक्त साहित्य की सूची

अनुबंध

परिचय

कंप्यूटर के अस्तित्व के दौरान, कई ऑपरेटिंग सिस्टम विकसित किए गए हैं। अब उनकी संख्या दर्जनों में मापी जाती है और विभिन्न परिवारों में केवल ऑपरेटिंग सिस्टम की एक निश्चित पंक्ति में उपयोग किए जाने वाले फ़ाइल स्वरूप होते हैं। यदि, उदाहरण के लिए, छवियों के लिए सार्वभौमिक संपादक हैं जो समर्थित ऑपरेटिंग सिस्टम की छवियों वाले किसी फ़ाइल प्रारूप को खोलते हैं, उदाहरण के लिए, डेटाबेस के लिए ऐसे कोई संपादक नहीं हैं।

प्रत्येक डेटाबेस प्रारूप के साथ काम करने के लिए, एक व्यक्तिगत डेटाबेस प्रबंधन प्रणाली है। डेटाबेस की बड़ी संख्या में किस्में हैं जो विभिन्न मानदंडों में भिन्न हैं:

1) डेटा मॉडल द्वारा वर्गीकरण:

ए) पदानुक्रमित;

बी) नेटवर्क;

ग) संबंधपरक;

डी) वस्तु और वस्तु-उन्मुख;

ई) वस्तु-संबंधपरक, कार्यात्मक।

2) लगातार भंडारण वातावरण द्वारा वर्गीकरण:

ए) माध्यमिक स्मृति में, या पारंपरिक;

बी) रैम में;

c) तृतीयक मेमोरी में।

3) वितरण की डिग्री के अनुसार वर्गीकरण:

ए) केंद्रीकृत, या केंद्रित;

बी) वितरित।

4) अन्य प्रकार के डेटाबेस

ए) स्थानिक;

बी) अस्थायी;

ग) अंतरिक्ष-समय;

डी) चक्रीय।

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

XML फ़ाइलें और XML भाषा पर आधारित अन्य एक्सटेंशन की फ़ाइलें बहुत व्यापक हो गई हैं, लगभग कोई भी आधुनिक ऑपरेटिंग सिस्टम इस फ़ाइल स्वरूप का समर्थन करता है। XML फाइलें एप्लिकेशन सेटिंग्स से लेकर डेटाबेस तक कई तरह के डेटा को स्टोर करती हैं। एक्सएमएल-आधारित फाइलों का उपयोग इंटरनेट पर और कार्यक्रमों के बीच सूचनाओं के आदान-प्रदान के लिए किया जाता है (जो कि मूल रूप से इस मार्कअप भाषा की कल्पना की गई थी)। चूंकि एक्सएमएल प्रारूप फाइलों में टेक्स्ट डेटा होता है, इसलिए उन्हें किसी भी टेक्स्ट एडिटर में आसानी से संपादित किया जा सकता है, साथ ही उपयोगकर्ता के अनुकूल डेटा एन्कोडिंग भी सेट किया जा सकता है। इसके अलावा, बड़ी संख्या में XML दस्तावेज़ जनरेटर हैं।

1 . विषय क्षेत्र का अनुसंधान और विश्लेषण

1.1 कार्य का विवरण

अंतिम योग्यता कार्य में, एक कनवर्टर प्रोग्राम को लागू करना आवश्यक है जो स्थानांतरित डीबीएफ फाइलों की सामग्री के आधार पर, उपयोगकर्ता द्वारा निर्दिष्ट टेम्पलेट के अनुसार एक एक्सएमएल फाइल बनाता है। डीबीएफ फाइलों की संख्या और संरचना मनमानी हो सकती है, आउटपुट एक्सएमएल फाइल हमेशा समान होनी चाहिए। प्रत्येक dbf फ़ाइल का अपना एक टेम्प्लेट होता है, जिसके आधार पर प्रोग्राम XML फ़ाइल को जानकारी लिखता है। टेम्प्लेट बनाने की क्षमता को दो तरह से लागू करना आवश्यक है: कोड का उपयोग करना और कंस्ट्रक्टर का उपयोग करना। कोड के साथ बनाए गए टेम्प्लेट को यह चुनना होगा कि आउटपुट फ़ाइल में कौन सा डेटा लिखना है। इस संभावना को विशेष रूप से इस कार्यक्रम के लिए विकसित विशेष कोड कमांड की मदद से पूरा किया जाता है। कंस्ट्रक्टर का उपयोग करके बनाए गए टेम्प्लेट में, आपको एक सरल और सुविधाजनक इंटरफ़ेस लागू करने की आवश्यकता होती है जो आपको कस्टम टेम्प्लेट बनाने की अनुमति देगा, जिसके आधार पर प्रोग्राम XML फ़ाइल को जानकारी लिखता है।

1.2 प्रासंगिकता के लिए तर्क अध्ययन के तहत समस्या

XML वर्ल्ड वाइड वेब कंसोर्टियम द्वारा अनुशंसित एक मार्कअप भाषा है, जो वास्तव में सामान्य सिंटैक्स नियमों का एक सेट है। XML एक पाठ प्रारूप है जिसे संरचित डेटा (मौजूदा डेटाबेस फ़ाइलों के बजाय) को संग्रहीत करने के लिए, कार्यक्रमों के बीच सूचनाओं के आदान-प्रदान के लिए और इसके आधार पर अधिक विशिष्ट मार्कअप भाषाएँ (उदाहरण के लिए, XHTML) बनाने के लिए डिज़ाइन किया गया है।

XML दस्तावेज़ केवल शब्द के सबसे सामान्य अर्थों में एक डेटाबेस है, अर्थात यह डेटा का एक संग्रह है। इसमें यह कई अन्य फाइलों से अलग नहीं है - अंत में, सभी फाइलों में किसी न किसी प्रकार का डेटा होता है। "डेटाबेस" प्रारूप के रूप में, एक्सएमएल के कुछ फायदे हैं, जैसे स्वयं-वर्णन (मार्कअप डेटा का वर्णन करता है)। इसे अलग-अलग सॉफ्टवेयर द्वारा हैंडल करना आसान है क्योंकि डेटा यूनिकोड में स्टोर होता है, यह डेटा को ट्री या ग्राफ जैसी संरचना में स्टोर करता है। लेकिन इसमें कुछ कमियां भी हैं, उदाहरण के लिए, यह बहुत ही वर्बोज़ है और टेक्स्ट को पार्स और कनवर्ट करने की आवश्यकता के कारण डेटा तक पहुंचने में अपेक्षाकृत धीमी है।

सकारात्मक पक्ष पर, XML आपको कई चीजों को लागू करने की अनुमति देता है जो पारंपरिक डेटाबेस में पाई जा सकती हैं: भंडारण (XML दस्तावेज़), स्कीमा (DTD, XML स्कीमा भाषा), क्वेरी भाषाएँ (XQuery, XPath, XQL, XML - QL, QUILT, आदि), API (SAX, DOM, JDOM), आदि। नुकसान में आधुनिक डेटाबेस में उपलब्ध कई सुविधाओं की कमी शामिल है: भंडारण अर्थव्यवस्था, अनुक्रमणिका, सुरक्षा, लेनदेन और डेटा अखंडता, बहु-उपयोगकर्ता पहुंच, ट्रिगर, कई दस्तावेजों पर प्रश्न आदि।

इस प्रकार, जबकि कम डेटा, कुछ उपयोगकर्ताओं और कम प्रदर्शन आवश्यकताओं वाले वातावरण में एक डेटाबेस के रूप में XML दस्तावेज़ों का उपयोग करना संभव है, यह अधिकांश व्यावसायिक वातावरणों में कई उपयोगकर्ताओं और मजबूत एकीकरण आवश्यकताओं, डेटा और उच्च प्रदर्शन आवश्यकताओं के साथ नहीं किया जा सकता है।

एक "डेटाबेस" का एक उदाहरण जिसके लिए एक XML दस्तावेज़ उपयुक्त है, एक .ini फ़ाइल है - यानी, एक फ़ाइल जिसमें एप्लिकेशन कॉन्फ़िगरेशन जानकारी होती है। एक्सएमएल-आधारित सुविधाओं के एक छोटे से सेट के साथ प्रोग्रामिंग भाषा के साथ आना और अल्पविराम से अलग फाइलों के लिए एक पार्सर लिखने की तुलना में इसकी व्याख्या करने के लिए एक SAX एप्लिकेशन लिखना बहुत आसान है। इसके अलावा, XML आपको डेटा तत्वों को नेस्ट करने की अनुमति देता है - डेटा को अल्पविराम से अलग करते समय ऐसा करना काफी कठिन होता है। हालाँकि, ऐसी फ़ाइलों को शब्द के पूर्ण अर्थ में शायद ही डेटाबेस कहा जा सकता है, क्योंकि वे रैखिक रूप से पढ़ी और लिखी जाती हैं और केवल तभी जब एप्लिकेशन खोला या बंद किया जाता है।

डेटासेट का सबसे दिलचस्प उदाहरण जिसमें डेटाबेस के रूप में एक्सएमएल दस्तावेज़ का उपयोग करना सुविधाजनक है, संपर्कों की एक व्यक्तिगत सूची (नाम, फोन नंबर, पते, आदि) है। हालांकि, कम लागत और डीबीएएसई और एक्सेस जैसे डेटाबेस के उपयोग में आसानी के कारण, इन मामलों में भी डेटाबेस के रूप में एक्सएमएल दस्तावेज़ का उपयोग करने का कोई कारण नहीं है। एक्सएमएल का एकमात्र वास्तविक लाभ यह है कि डेटा को एक एप्लिकेशन से दूसरे एप्लिकेशन में आसानी से पोर्ट किया जा सकता है, लेकिन यह लाभ इतना महत्वपूर्ण नहीं है, क्योंकि डेटाबेस को एक्सएमएल प्रारूप में क्रमबद्ध करने के लिए पहले से ही व्यापक उपकरण हैं।

सॉफ्टवेयर विकास निम्नलिखित कारणों से प्रासंगिक है:

डीबीएफ डेटाबेस प्रारूप पुराना है और आधुनिक आवश्यकताओं को पूरा नहीं करता है;

एक्सएमएल प्रारूप में सामग्री के लिए सख्त आवश्यकताएं नहीं हैं, उपयोगकर्ता किसी भी क्रम में डेटा स्टोर कर सकता है और किसी भी नाम से टैग बना सकता है;

कोई भी कनवर्टर प्रोग्राम आपको अपनी स्वयं की XML फ़ाइल संरचना बनाने और कई dbf प्रारूप फ़ाइलों से डेटा लिखने की अनुमति नहीं देता है।

1.3 समान समस्याओं को हल करने के तरीकों का अवलोकन

"व्हाइट टाउन" डीबीएफ फाइलों को एक्सएमएल प्रारूप में परिवर्तित करना संभव बनाता है। प्रोग्राम dBase III, dBase IV, FoxPro, VFP और dBase Level 7 dbf फाइलों को कनवर्ट कर सकता है। प्रोग्राम कमांड लाइन इंटरफेस का समर्थन करता है। इस प्रकार, इसे आवश्यक पैरामीटर निर्दिष्ट करने के बाद या विंडोज शेड्यूलर से शेड्यूल के अनुसार .BAT या .LNK फ़ाइल से लॉन्च किया जा सकता है। इस सॉफ़्टवेयर उत्पाद का नुकसान आउटपुट फ़ाइल स्वरूप को अनुकूलित करने में असमर्थता है। मुख्य अनुप्रयोग विंडो चित्र 1.1 में दिखाई गई है।

चित्र 1.1 - "व्हाइट टाउन" कार्यक्रम की मुख्य विंडो

"डीबीएफ कन्वर्टर" एक बहुमुखी लेकिन उपयोग में आसान रूपांतरण कार्यक्रम है। इस प्रोग्राम में एक विज़ार्ड जैसा इंटरफ़ेस है, लेकिन फ़ाइलों के समूह को संसाधित करने के लिए कमांड लाइन उपयोगिता के रूप में भी इसका उपयोग किया जा सकता है। "डीबीएफ कन्वर्टर" एक्सएमएल, सीएसवी, टीXT, एचटीएमएल, आरटीएफ, पीआरजी और अन्य जैसे सभी आधुनिक डेटा एक्सचेंज प्रारूपों का समर्थन करता है। DBF तालिकाओं को SQL स्क्रिप्ट में बदलने की क्षमता को लागू किया, जिसे किसी भी SQL डेटाबेस में आयात किया जा सकता है।

सरल परिवर्तनों के अलावा, "डीबीएफ कन्वर्टर" आपको केवल कुछ कॉलम चुनकर और फ़िल्टर लागू करके डेटा में हेरफेर करने की अनुमति देता है। सरलीकृत फ़िल्टरिंग नियमों के विपरीत, जो आमतौर पर अन्य डीबीएफ अनुप्रयोगों में पाए जाते हैं, "डीबीएफ कन्वर्टर" गतिशील रूप से सरल डेटाबेस प्रविष्टि फॉर्म बनाता है। साधारण रिकॉर्ड के किसी भी क्षेत्र में उन्नत मास्क और नियम निर्धारित करने की क्षमता DBF कन्वर्टर में उपलब्ध सबसे मूल्यवान विशेषताओं में से एक है। इस सॉफ़्टवेयर का मुख्य नुकसान इसकी $29.95 की लागत है।

मुख्य अनुप्रयोग विंडो चित्र 1.2 में दिखाई गई है।

चित्र 1.2 - "DBF कन्वर्टर" कार्यक्रम की मुख्य विंडो

"डीबीएफ व्यू" डीबीएफ फाइलों के साथ काम करने के लिए एक स्वतंत्र, कॉम्पैक्ट और सुविधाजनक कार्यक्रम है। स्थापना की आवश्यकता नहीं है, अतिरिक्त ड्राइवरों और पुस्तकालयों के बिना काम करता है।

मुख्य लाभ सार्वभौमिकता, तेज और लचीली रैखिक खोज है, जो गति में कई SQL से आगे निकल जाती है।

अतिरिक्त सुविधाये:

मुखौटा (पैटर्न) द्वारा खोजें;

डेटा संपादित करना, बदलना, हटाना, बनाना, जोड़ना;

फ़ील्ड छँटाई;

बहुभाषावाद और नए शब्दकोशों का निर्माण;

आयात और निर्यात DBF, TXT, CSV, SQL, XML;

डॉस, विंडोज, ट्रांसलिट और अन्य को रिकोडिंग;

पासवर्ड लॉन्च करें;

रिकॉर्डिंग इतिहास।

इस सॉफ़्टवेयर का मुख्य नुकसान कनवर्ट करते समय टेम्प्लेट बनाने में असमर्थता है। कार्यक्रम की मुख्य विंडो चित्र 1.3 में दिखाई गई है।

चित्र 1.3 - कार्यक्रम की मुख्य विंडो "डीबीएफ व्यू"

1.4 समस्या विवरण, सिस्टम आवश्यकताएँ, आउटपुट डेटा और आउटपुट फॉर्म के लिए आवश्यकताएँ

कार्य का अध्ययन करने, इसकी प्रासंगिकता की जांच करने और मौजूदा कनवर्टर कार्यक्रमों का विश्लेषण करने के बाद, विकसित सॉफ्टवेयर के लिए आवश्यक आवश्यकताओं की एक सूची तैयार की गई थी।

निम्नलिखित कार्यों को सॉफ्टवेयर उत्पाद में लागू किया जाना चाहिए:

डीबीएफ फाइलों की सामग्री पढ़ना;

दो संपादकों में से एक में टेम्पलेट बनाना;

टेम्पलेट संपादन;

डीबीएफ फाइलों को परिवर्तित करने के क्रम का चयन करना;

टेम्पलेट्स का निष्पादन;

लॉगिंग में त्रुटि;

प्रोग्राम के परिणामों को XML फ़ाइल में सहेजना।

सॉफ्टवेयर माइक्रोसॉफ्ट विजुअल स्टूडियो 2008 में लिखा गया है और इसे चलाने की आवश्यकता है:

किसी एक संस्करण के विंडोज परिवार का ऑपरेटिंग सिस्टम: विंडोज विस्टा, विंडोज 7 या विंडोज 8;

माइक्रोसॉफ्ट .NET फ्रेमवर्क 4;

विजुअल फॉक्सप्रो ओडीबीसी ड्राइवर्स।

सॉफ़्टवेयर उत्पाद के लिए न्यूनतम सिस्टम आवश्यकताएँ ऑपरेटिंग सिस्टम के लिए न्यूनतम आवश्यकताओं के अनुरूप हैं।

इनपुट डेटा dBase II, dBase III या dBase IV संस्करण dbf फ़ाइलें हो सकता है।

आउटपुट फ़ाइलें एक XML प्रारूप फ़ाइल होनी चाहिए जिसमें भाषा संस्करण 1.x और किसी भी ब्राउज़र के लिए समर्थन हो।

इनपुट और आउटपुट फ़ाइलों का पथ मनमाना हो सकता है।

2 . सॉफ्टवेयर उत्पाद की संरचना और वास्तुकला डिजाइन

2.1 कार्यान्वयन के तरीकों और साधनों का चुनाव, इसका औचित्य

एकीकृत विकास परिवेश Microsoft Visual Studio 2008 को सॉफ़्टवेयर उत्पाद के विकास के लिए चुना गया था।

विजुअल स्टूडियो 2008 - .NET फ्रेमवर्क 3.5 के साथ 19 नवंबर, 2007 को जारी किया गया। इसका उद्देश्य विंडोज विस्टा ऑपरेटिंग सिस्टम (लेकिन एक्सपी को भी सपोर्ट करता है), ऑफिस 2007 और वेब एप्लिकेशन के लिए एप्लिकेशन बनाना है। LINQ, C# के नए संस्करण और विजुअल बेसिक शामिल हैं। स्टूडियो में विजुअल जे # शामिल नहीं था। इसके फायदों में से एक पूरी तरह से रूसी इंटरफ़ेस है।

Visual Studio में IntelliSense तकनीक के समर्थन के साथ एक स्रोत कोड संपादक और कोड को आसानी से पुन: सक्रिय करने की क्षमता शामिल है। अंतर्निहित डीबगर स्रोत-स्तरीय डीबगर और मशीन-स्तरीय डीबगर दोनों के रूप में काम कर सकता है। अन्य एम्बेड करने योग्य टूल में एप्लिकेशन के GUI, वेब एडिटर, क्लास डिज़ाइनर और डेटाबेस स्कीमा डिज़ाइनर के निर्माण को सरल बनाने के लिए एक फॉर्म एडिटर शामिल है। विजुअल स्टूडियो आपको लगभग हर स्तर पर कार्यक्षमता बढ़ाने के लिए तृतीय-पक्ष ऐड-ऑन (प्लगइन्स) बनाने और कनेक्ट करने की अनुमति देता है, जिसमें सोर्स कोड वर्जन कंट्रोल सिस्टम (जैसे सबवर्जन और विजुअल सोर्ससेफ) के लिए समर्थन जोड़ना, नए टूलकिट जोड़ना (उदाहरण के लिए, संपादन और दृश्य कोड डिजाइन के लिए) सॉफ्टवेयर विकास प्रक्रिया के अन्य पहलुओं के लिए डोमेन-विशिष्ट प्रोग्रामिंग भाषाओं या उपकरणों में (उदाहरण के लिए, टीम फाउंडेशन सर्वर के साथ काम करने के लिए टीम एक्सप्लोरर क्लाइंट)।

सभी विजुअल स्टूडियो 2008 सी#-आधारित कार्यक्षेत्र सुविधाओं में शामिल हैं:

ऑब्जेक्ट इंटरैक्शन की भाषा में कार्यों को तैयार करने की क्षमता;

कार्यक्रम कोड की उच्च प्रतिरूपकता;

उपयोगकर्ताओं की इच्छा के अनुकूलता;

कार्यक्रम पुन: प्रयोज्य की एक उच्च डिग्री;

बड़ी संख्या में जुड़े हुए पुस्तकालय।

2. 2 लागू एल्गोरिदम का विवरण

इस सॉफ़्टवेयर के विकास में, दो मुख्य कठिनाइयों को अलग किया जा सकता है: प्रोग्राम करने योग्य टेम्पलेट्स के लिए एक पहचानकर्ता बनाना और एक प्रोग्रामिंग मॉडल बनाना जो कि कन्स्ट्रक्टर का उपयोग करके बनाए गए टेम्पलेट्स में उपयोग किया जाएगा।

1. प्रोग्राम करने योग्य पैटर्न। चूंकि टेम्प्लेट में उपयोग किया जाने वाला कोड कुछ हद तक प्रोग्रामिंग भाषाओं में उपयोग किए जाने वाले कोड के समान होता है, इसलिए यह आवश्यक है कि यह पहचानकर्ता कोड कंपाइलर के कुछ कार्यों, या इसके पार्सिंग कार्यों को संभाल ले। कंपाइलर की संरचना में, पार्सिंग भाग में लेक्सिकल, सिंटैक्टिक और सिमेंटिक विश्लेषण होते हैं। लेक्सिकल एनालाइजर प्रोग्राम के कैरेक्टर को सोर्स लैंग्वेज में पढ़ता है और उनसे सोर्स लैंग्वेज लेक्सेम बनाता है। उनके काम का परिणाम पहचानकर्ताओं की एक तालिका है। पार्सर लेक्सिकल एनालाइज़र द्वारा प्रोसेस किए गए सोर्स प्रोग्राम के टेक्स्ट में सिंटैक्टिक कंस्ट्रक्शन का एक्सट्रैक्शन करता है। कार्यक्रम के वाक्यात्मक नियमों को भाषा के व्याकरण के अनुरूप लाता है। पार्सर इनपुट भाषा का टेक्स्ट पहचानकर्ता है। शब्दार्थ विश्लेषक इनपुट भाषा के अर्थ के संदर्भ में स्रोत कार्यक्रम के पाठ की शुद्धता की जाँच करता है।

कोड की मदद से, निम्नलिखित सुविधाओं को लागू किया जाना चाहिए: एक लूप बनाना, पंक्तियों और स्तंभों की संख्या पर डेटा प्राप्त करना और प्रदर्शित करना, डेटा प्रकार और कॉलम नाम प्राप्त करना, साथ ही साथ डेटाबेस सेल की सामग्री प्राप्त करना। ऐसा करने के लिए, सबसे पहले, automaton के सभी संभावित राज्यों की एक सूची बनाना आवश्यक है। पहचानकर्ता की संभावित अवस्थाओं को तालिका 2.1 में प्रस्तुत किया गया है।

तालिका 2.1 - संभावित पहचानकर्ता राज्यों की सूची

स्थिति सूचकांक

राज्य

विवरण

चर

साइकिल काउंटर

सेवा शब्द एक चक्र की शुरुआत को दर्शाता है

सेवा शब्द लूप के बाहर निकलने की स्थिति को दर्शाता है

कार्यात्मक शब्द यह दर्शाता है कि आगे का संदर्भ आधार स्तंभों के लिए होगा

कार्यात्मक शब्द यह दर्शाता है कि आगे का संदर्भ आधार तारों के लिए होगा

मात्रा

पिछली कॉल के आधार पर पंक्तियों या स्तंभों की संख्या को दर्शाने वाला कार्यात्मक शब्द

एक्सेस किए जाने वाले कॉलम के डेटा प्रकार के आउटपुट को दर्शाने वाला कार्यात्मक शब्द

नाम

कॉलम के नाम के आउटपुट को दर्शाने वाला कार्यात्मक शब्द जिस पर अपील की जाती है

सेवा शब्दों को अलग करने वाला विशेष वर्ण

= (समान चिह्न)

एक विशेष वर्ण जो इंगित करता है कि लूप शुरू होने पर चर को कौन सा मान सौंपा जाएगा।

[(खुला ब्रैकेट)

] (करीबी कोष्ठक)

एक विशेष वर्ण जो दर्शाता है कि एक विशेष कॉलम या पंक्ति तक पहुँचा जा सकता है

कोई पूर्णांक

संकलित तालिका के आधार पर, संभव राज्य संक्रमणों की एक परिमित राज्य मशीन का निर्माण करना संभव है। चित्र 2.1 एक राज्य मशीन दिखाता है।

चित्र 2.1 - संभावित संक्रमणों की परिमित अवस्था मशीन

निर्मित ऑटोमेटन के आधार पर, वापसी के साथ एक अवरोही पहचानकर्ता का निर्माण करना संभव है (विकल्पों के चयन के साथ)। एक अवरोही बैकट्रैकिंग पहचानकर्ता का उपयोग यह निर्धारित करने के लिए किया जाता है कि स्ट्रिंग व्याकरण से संबंधित है या नहीं। यह वर्तमान स्थिति का विश्लेषण करता है, वर्तमान स्थिति से अगले राज्य में संक्रमण नियम की खोज करता है, यदि अगला राज्य मेल खाता है, तो प्रक्रिया अगले के लिए दोहराई जाती है। यदि पहचानकर्ता को वर्तमान स्थिति से अगली स्थिति में संक्रमण नियम नहीं मिल रहा है, तो यह श्रृंखला इस व्याकरण से संबंधित नहीं है, अर्थात कोड लाइन एक तार्किक त्रुटि के साथ लिखी गई है। यदि कई संक्रमण विकल्प हैं, तो पहचानकर्ता उस स्थिति को याद करता है जिसमें विकल्प उत्पन्न हुआ था और यदि श्रृंखला व्याकरण से संबंधित नहीं है तो वह वापस आ जाता है। चित्र 2.2 एक बैकट्रैक के साथ एक डाउनवर्ड-फेसिंग रिज़ॉल्वर दिखाता है।

चित्र 2.2 - बैकट्रैकिंग के साथ डाउनवर्ड रिज़ॉल्वर

टेम्प्लेट विश्लेषण के दौरान, एक त्रुटि लॉग रखा जाता है जिसमें यह जानकारी होती है कि किस टेम्प्लेट में त्रुटि है, कोड की विशेष पंक्ति और त्रुटि के प्रकार। त्रुटियां निम्न प्रकार की हो सकती हैं: अपरिचित पहचानकर्ता (सेवा शब्दों या विशेष वर्णों का उपयोग करने का प्रयास जो दिए गए कोड द्वारा प्रदान नहीं किए गए हैं), तार्किक अर्थ का उल्लंघन (कोड की रेखा पहचानकर्ता को पारित नहीं करती है), एक प्रयास एक गैर-मौजूद चर का उपयोग करने के लिए (एक गैर-सृजित चर के लिए एक चर का उपयोग करना या लूप के बाहर एक चर का उपयोग करना), लूप की शुरुआत निर्दिष्ट नहीं है (लूप की शुरुआत और अंत को खोलने और बंद करने के रूप में निर्दिष्ट किया जाना चाहिए) मध्यम कोष्ठक)।

2. कंस्ट्रक्टर का उपयोग करके बनाए गए टेम्प्लेट। एक समाधान तार्किक प्रोग्रामिंग भाषाओं में उपयोग की जाने वाली संरचना है: सामान्य इनपुट जानकारी के लिए कंडीशन फ़िल्टर लागू करें, जो इस मामले में डेटाबेस तालिका की सामग्री है। चित्र 2.3 डेटाबेस तालिका की सामान्य संरचना को दर्शाता है।

चित्र 2.3 - डेटाबेस तालिका की सामान्य संरचना

3. कार्यान्वयन के रूप में, "सत्य तालिका" का उपयोग करके एक समाधान चुना गया था। यह तालिका n+1 कॉलम और m+1 पंक्तियों वाली एक तालिका है, जहां n और m इनपुट तालिका में कॉलम और पंक्तियों की संख्या है। प्रत्येक टेबल सेल एक सही या गलत मान संग्रहीत करता है। चित्र 2.4 "सत्य तालिका" दिखाता है।

चित्र 2.4 - "सत्य तालिका"

जब कोई फ़िल्टर लागू किया जाता है, तो फ़िल्टर किस पर लागू किया गया था, इस पर निर्भर करते हुए, वास्तविक मानों को असत्य से बदल दिया जाता है। यदि फ़िल्टर को कोशिकाओं की सामग्री पर लागू किया गया था, तो प्रत्येक सेल के लिए मान विशेष रूप से बदल जाएगा, और यदि पंक्तियों या स्तंभों के लिए, तो केवल एक अतिरिक्त पंक्ति या स्तंभ में।

डेटाबेस के साथ काम करते समय, निम्नलिखित संस्थाओं को प्रतिष्ठित किया जा सकता है: पंक्ति अनुक्रमणिका, स्तंभ अनुक्रमणिका, पंक्तियों की संख्या, स्तंभों की संख्या, स्तंभ प्रकार, स्तंभ नाम, कक्ष सामग्री।

शर्तें भी रखी गईं:<», «>”, "=", "शामिल है", "मिलान"।

4. चयनित निकाय और शर्तें सभी संभावित डेटा प्रदर्शित करने या सभी प्रकार की शर्तों को लागू करने के लिए पर्याप्त हैं। चित्र 2.5 लागू किए गए फ़िल्टर के साथ "सत्य तालिका" दिखाता है।

चित्र 2.5 - "सत्य तालिका" लागू किए गए फ़िल्टर के साथ

एक्सएमएल फ़ाइल में जानकारी आउटपुट करते समय, प्रोग्राम यह निर्धारित करता है कि आउटपुट होने की क्या आवश्यकता है, और फिर, "ट्रुथ टेबल" का उपयोग करके, केवल उन मानों को आउटपुट करता है जो वास्तविक मान के अनुरूप होते हैं।

टेम्प्लेट लेआउट बनाने के लिए, निम्न प्रकार के टैग बनाए गए: मुख्य, सरल, वैश्विक, ब्लॉक। मुख्य एक टैग है, एक दस्तावेज़ में इस प्रकार का केवल एक ही हो सकता है और इसकी आवश्यकता होती है, इसमें XML दस्तावेज़ के बारे में जानकारी होती है। सरल - इस प्रकार के टैग डेटा प्रदर्शित करने और "सत्य तालिका" पर शर्तों को लागू करने का एकमात्र तरीका है। उनमें निम्नलिखित भाग होते हैं: शीर्षक, स्रोत और स्थिति। पहले चयनित निकायों का उपयोग स्रोत और शर्त के रूप में किया जाता है। यदि टैग का नाम खाली है, तो उसकी सामग्री प्रदर्शित नहीं की जाएगी, लेकिन "सत्य तालिका" के लिए शर्त लागू की जाएगी।

वैश्विक - इस प्रकार के टैग में तार्किक भार नहीं होता है, वे केवल आउटपुट के लिए आवश्यक होते हैं।

ब्लॉक - इस प्रकार के टैग सरल टैग के तर्क को संयोजित करने के लिए आवश्यक हैं, और ब्लॉक टैग में जो कुछ भी लिखा गया है वह "सत्य तालिका" को संतुष्ट करने वाले प्रत्येक सेल के लिए प्रदर्शित किया जाएगा। ब्लॉक टैग स्वयं XML दस्तावेज़ में प्रदर्शित नहीं होता है।

2.3 सॉफ्टवेयर उत्पाद की संरचना, वास्तुकला

सेंट्रल टू ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग क्लास डायग्राम के रूप में सिस्टम के लॉजिकल मॉडल का विकास है। क्लास डायग्राम (क्लास डायग्राम) ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग क्लासेस की शब्दावली में सिस्टम मॉडल की स्थिर संरचना का प्रतिनिधित्व करने का कार्य करता है। एक वर्ग आरेख, विशेष रूप से, विषय क्षेत्र की व्यक्तिगत संस्थाओं, जैसे कि वस्तुओं और उप-प्रणालियों के बीच विभिन्न संबंधों को प्रतिबिंबित कर सकता है, साथ ही साथ उनकी आंतरिक संरचना और संबंधों के प्रकारों का वर्णन कर सकता है।

इस आरेख में वर्ग (वर्ग) का उपयोग वस्तुओं के एक समूह को दर्शाने के लिए किया जाता है जिनकी संरचना, व्यवहार और अन्य वर्गों की वस्तुओं के साथ संबंध समान होते हैं। ग्राफिक रूप से, वर्ग को एक आयत के रूप में दर्शाया गया है, जिसे अतिरिक्त रूप से क्षैतिज रेखाओं द्वारा अनुभागों या वर्गों में विभाजित किया जा सकता है। इन अनुभागों में वर्ग का नाम, विशेषताएँ (चर), और संचालन (विधियाँ) हो सकते हैं।

कक्षाओं की आंतरिक संरचना या संरचना के अलावा, संबंधित आरेख वर्गों के बीच संबंध को इंगित करता है:

इस एप्लिकेशन के लिए, तालिका 2.2 में वर्णित कक्षाएं आवंटित की गई हैं।

तालिका 2.2 - सॉफ्टवेयर उत्पाद में प्रयुक्त वर्गों का विवरण

कनवर्टर एप्लिकेशन का वर्ग आरेख चित्र 2.6 में दिखाया गया है। आरेख से, आप देख सकते हैं कि MyCode वर्ग टेम्प्लेट वर्ग का एक चर है। टेम्प्लेट वर्ग में निम्नलिखित फ़ील्ड होते हैं: dt, lv, thisTemplate, mycode, fs, sr, sw, सही, masCode, masPerem, masPeremCount, masSost, masCodeLength। dt एक डेटाटेबल प्रकार चर है जिसमें डेटाबेस में संग्रहीत जानकारी होती है; lv - ListView प्रकार का एक चर, एक इंटरफ़ेस ऑब्जेक्ट जिसमें टेम्प्लेट में त्रुटि संदेश लिखे जाते हैं; thisTemplate - प्रकार की स्ट्रिंग का एक चर, जिसका अर्थ उस टेम्पलेट का नाम है जिसे वर्तमान में संसाधित किया जा रहा है; mycode - MyCode वर्ग की एक सरणी जो इस टेम्पलेट में पाए गए सभी कोड अंशों के बारे में जानकारी संग्रहीत करती है; fs - फ़ाइलस्ट्रीम प्रकार का एक चर, जो निर्धारित करता है कि प्रोग्राम किस फ़ाइल के साथ काम करेगा; sr - StreamReader प्रकार का एक चर, जो यह निर्धारित करता है कि किस फ़ाइल से जानकारी पढ़ी जाएगी; sw एक StreamWriter प्रकार का चर है जो यह निर्धारित करता है कि किस फ़ाइल की जानकारी को लिखा जाएगा; सही - एक बूल प्रकार चर यह दर्शाता है कि वर्तमान कोड खंड सही ढंग से संसाधित किया गया है या नहीं; masCode - प्रकार की स्ट्रिंग की एक सरणी जिसमें टेम्पलेट में कोड की सभी पाई गई पंक्तियाँ होती हैं; masCodeLength - एक इंट वेरिएबल यह दर्शाता है कि टेम्प्लेट में कोड की कितनी लाइनें पाई गईं; masPerem - स्ट्रिंग प्रकार की दो-आयामी सरणी जिसमें बनाए गए चर के नाम और मान होते हैं; masPeremCount - प्रकार का एक चर int यह दर्शाता है कि इस समय कितने चर बनाए गए हैं; masSost कोड की वर्तमान पंक्ति के लिए मशीन राज्यों की एक सूची युक्त int प्रकार की एक सरणी है।

कक्षा में निम्नलिखित विधियां भी शामिल हैं: कनेक्ट करें, खोजें, विश्लेषण करें, जांचें, निष्पादित करें। कनेक्ट विधि दिए गए पथ पर टेम्पलेट से जुड़ती है। खोज विधि टेम्पलेट में कोड स्निपेट ढूंढती है। विश्लेषण विधि कोड की एक पंक्ति के लिए राज्यों को निर्धारित करती है। चेक विधि पुनरावर्ती है, यह एक स्ट्रिंग की तार्किक वैधता निर्धारित करती है। ExecuteCode विधि वर्तमान टेम्पलेट को निष्पादित करती है। वर्णित कक्षाओं के लिए, आप एक वर्ग आरेख बना सकते हैं। चित्र 2.6 एक वर्ग आरेख है।

चित्र 2.6 - वर्ग आरेख

2.4 कार्यात्मक आरेख, सॉफ़्टवेयर उत्पाद का कार्यात्मक उद्देश्य

सॉफ्टवेयर उत्पाद ने अद्वितीय एल्गोरिदम के साथ सूचना प्रसंस्करण के लिए दो संभावित विकल्प विकसित किए हैं।

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

यदि आप कंस्ट्रक्टर का उपयोग करके बनाए गए टेम्प्लेट का उपयोग करते हैं, तो उपयोगकर्ता को उस डेटाबेस को निर्दिष्ट करने की आवश्यकता होती है जिसे परिवर्तित करने की आवश्यकता होती है, फिर आउटपुट फ़ाइल की निर्देशिका निर्दिष्ट करें, एक टेम्पलेट बनाएं और रूपांतरण प्रक्रिया शुरू करें। रूपांतरण में ही दो भाग होते हैं: टेम्पलेट के आधार पर एक सत्य तालिका बनाना और सत्य तालिका के अनुसार रूपांतरण निष्पादित करना। आउटपुट फ़ाइल तब उपयोगकर्ता द्वारा इच्छित के रूप में उपयोग की जा सकती है।

अंतिम योग्यता कार्य के दूसरे अध्याय में, विकास उपकरण चुने गए थे, अर्थात् माइक्रोसॉफ्ट विजुअल स्टूडियो 2008, एक सॉफ्टवेयर उत्पाद को लागू करने के मुख्य तरीकों का वर्णन किया गया था, और इसकी संरचना का भी वर्णन किया गया था। सॉफ्टवेयर उत्पाद के कार्यात्मक आरेख का भी वर्णन किया गया था।

दूसरे अध्याय में विचार के मुख्य बिंदु थे:

कार्यान्वयन के तरीकों और साधनों का चुनाव, इसका औचित्य;

लागू एल्गोरिदम का विवरण;

सॉफ्टवेयर उत्पाद की संरचना, वास्तुकला;

कार्यात्मक आरेख, सॉफ्टवेयर उत्पाद का कार्यात्मक उद्देश्य।

3 . कार्यान्वयनऔर परीक्षणसॉफ्टवेयर उत्पाद

3.1 कार्यान्वयन विवरण

इस सॉफ़्टवेयर उत्पाद को लागू करने में कठिनाइयों में से एक पहचानकर्ता एल्गोरिथम लिख रहा है। संपूर्ण एल्गोरिथ्म को विधियों द्वारा वर्णित किया गया है: खोज, विश्लेषण, जाँच, निष्पादन कोड।

खोज विधि पैटर्न को पढ़ती है और दोनों तरफ "*" वर्णों के साथ चिह्नित कोड अंश ढूंढती है और उन्हें .

सार्वजनिक शून्य खोज ()

बूलसाइन = झूठा;

जबकि (!sr.EndOfStream)

अगर ((सी! = "*") && (साइन == सच))

(एस += सी.टॉस्ट्रिंग ();)

अगर ((सी == "*") && (साइन == झूठा))

अगर ((सी == "*") && (साइन == सत्य))

मासकोड = एस;

masCodeLength++; )

s += c.ToString (); ))

मायकोड = नया माईकोड;)

एनालाइज़ विधि कोड की एक पंक्ति को अलग-अलग टोकन में विभाजित करती है और उनमें से प्रत्येक के लिए स्थिति निर्धारित करती है, यदि प्रतीकों या शब्दों का उपयोग किया जाता है जो भाषा द्वारा प्रदान नहीं किए जाते हैं, या गलत चर नामों का उपयोग किया जाता है, तो एक उपयुक्त त्रुटि संदेश जोड़ा जाता है त्रुटि संग्रह। प्रयुक्त लेक्सेम की एक पूरी सूची तालिका 2.1 में प्रस्तुत की गई है।

सार्वजनिक शून्य विश्लेषण ()

(स्ट्रिंग masIdent = नई स्ट्रिंग;

int masIdentLength = 0;

बूल साइन = सच;

के लिए (int a = 0; a< masCodeLength; a++)

(सही = झूठा;

masIdentLength = 0;

मासकोड [ए] = मासकोड [ए]। ट्रिम ();

masCode [a] = masCode [a]। ToLower ();

के लिए (इंट बी = 0; बी< masCode[a].Length; b++)

(सी = मासकोड [ए] [बी];

masIdentLength++; )

मास इंडेंट = "।";

masIdentLength++;

अगर ((सी == "") && (एस! = ""))

( masIdent = s;

masIdentLength++;

( masIdent = s;

masIdentLength++; )

मायकोड [ए] = नया माईकोड ("", शून्य);

के लिए (int z = 0; z< masIdentLength; z++)

mycode[a].code += masIdent[z] + "";

माससोस्ट = नया इंट;

विधि के पिछले भाग में, सभी पाए गए टोकन masIdent सरणी में लिखे गए थे, फिर एक लूप प्रारंभ किया जाता है जिसमें राज्य सभी पाए गए टोकन के लिए निर्धारित किया जाता है और माससोस्ट सरणी को लिखा जाता है।

के लिए (इंट बी = 0; बी< masIdentLength; b++)

अगर (मासिडेंट [बी] == "के लिए")

और अगर (masIdent[b] == "पहले")

और अगर (masIdent[b] == "कॉलम")

और अगर (masIdent[b] == "स्ट्रिंग")

अगर (Char.IsLetter(masIdent[b]))

(बूल एफ = सच;

के लिए (इंट डी = 1; डी< masIdent[b].Length; d++)

अगर (!Char.IsLetterOrDigit(masIdent[b][d]))

अगर (एफ == सच) माससोस्ट [बी] = 1; वरना

यदि मिली आईडी मौजूद नहीं है तो त्रुटि लॉग में त्रुटि प्रविष्टि जोड़ना।

lv.Items.SubItems.Add("अपरिचित पहचानकर्ता" + masIdent[b]); )) वरना

lv.Items.SubItems.Add(mycode[a].code);

lv.Items.SubItems.Add("अपरिचित पहचानकर्ता" + masIdent[b]);))

mycode[a] = new MyCode(mycode[a].code, masSost);

चेक (0, माससोस्ट, ए); )

चेक विधि वापसी के साथ अवरोही रिज़ॉल्वर के काम पर आधारित है: वर्तमान स्थिति निर्धारित की जाती है, यदि यह संभव है, तो अगले के लिए एक संक्रमण किया जाता है। यदि यह संभव नहीं है, तो राज्य वैकल्पिक पर स्विच करता है, यदि कोई नहीं है, तो त्रुटि लॉग में एक त्रुटि संदेश जोड़ा जाता है।

सार्वजनिक शून्य जाँच (int a, int s, int indc)

(अगर (माससोस्ट [ए] == एस)

(अगर ((एस == 1) && (ए == 0))

सही = सच; ) वरना

अगर ((एस == 2) && (ए == 0)) एस = 1; वरना

अगर (((एस == 4) || (एस == 5)) && (ए == 0)) एस = 8; वरना

अगर ((एस == 1) && (ए == 1)) एस = 9; वरना

अगर ((एस == 8) && (ए == 1)) एस = 6; वरना

अगर ((एस == 10) && (ए == 1)) एस = 1; वरना

अगर ((एस == 9) && (ए == 2)) एस = 12; वरना

अगर ((एस == 6) && (ए == 2))

(यदि (a == masSost.Length-1)

सही = सच; ) वरना

अगर (((एस == 1) || (एस == 12)) && (ए == 2)) एस = 11; वरना

अगर ((एस == 12) && (ए == 3)) एस = 3; वरना

अगर ((एस == 11) && (ए == 3)) एस = 8; वरना

अगर ((एस == 3) && (ए == 4)) एस = 12; वरना

अगर ((एस == 8) && (ए == 4))

(अगर (माससोस्ट == 4)

अगर ((एस == 6) && (ए == 7))

(यदि (a == masSost.Length-1)

सही = सच; )

अगर (((एस == 12) || (एस == 1)) && (ए == 7))

अगर ((एस == 11) && (ए == 8))

(यदि (a == masSost.Length-1)

सही = सच; )

यदि इनपुट राज्यों की सरणी ने रिज़ॉल्वर द्वारा चेक पास किया है और सभी राज्यों का मिलान किया गया है, तो सही चर सत्य पर सेट है, और यदि कहीं कोई बेमेल है, तो वापसी की जाती है और वैकल्पिक स्थिति के लिए जाँच की जाती है।

अगर (सही == गलत)

चेक (ए, एस, इंडक); ) )

अगर ((एस == 8) && (ए == 1))

चेक (ए, एस, इंडक); )

अगर ((एस == 1) && (ए == 2))

चेक (ए, एस, इंडसी);)

अगर ((एस == 1) && (ए == 7))

चेक (ए, एस, इंडक); )

यदि किए जा रहे संक्रमण को पहचाना नहीं गया था, तो संसाधित की जा रही कोड की लाइन को तार्किक रूप से अमान्य माना जाता है और त्रुटि लॉग में एक उपयुक्त त्रुटि प्रविष्टि जोड़ी जाती है।

अगर (सही == गलत)

lv.Items.Add(thisTemplate, thisTemplate);

lv.Items.SubItems.Add(masCode);

lv.Items.SubItems.Add ("लाइन का तार्किक अर्थ उल्लंघन किया गया है");

मायकोड। सही = गलत;

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

सार्वजनिक शून्य निष्पादन कोड (int NCode, bool cikcle, StreamReader sr, StreamWriter sw, int tempF)

जबकि (!sr.EndOfStream)

सी = कन्वर्ट। तोचर (एसआर। रीड ());

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

अगर ((सी == ")") && (सिकल == सच))

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

यदि पढ़ा गया वर्ण "*" था, तो एल्गोरिथ्म अगले वर्ण को पढ़ता है, यदि यह "*" है, तो इसका अर्थ है कि उपयोगकर्ता इस वर्ण को आउटपुट फ़ाइल में आउटपुट करना चाहता था।

(सी = कन्वर्ट। टोचर (एसआर। रीड ());

यदि अगला वर्ण "*" नहीं था, तो इसका अर्थ है कि "*" से पहले के सभी वर्ण कोड कमांड को संदर्भित करते हैं।

अगर (mycode.rect == सच)

अगर (mycode.masSost == 1)

(बूल क्रिएट = असत्य;

के लिए (int a = 0; a< masPeremCount; a++)

(अगर (masPerem == mycode.code)

sw.लिखें (masPerem);

जबकि (sr.Read() != "*")

यदि, कोड में, उपयोगकर्ता एक वेरिएबल प्रदर्शित करने का प्रयास करता है जिसे पहले घोषित नहीं किया गया है, तो त्रुटि लॉग में एक त्रुटि प्रविष्टि लिखी जाती है और दूर कोड अब निष्पादित नहीं होता है।

अगर (बनाएं == झूठा)

( lv.Items.Add(thisTemplate, thisTemplate);

lv.Items.SubItems.Add ("एक गैर-मौजूद चर प्रदर्शित करने का प्रयास कर रहा है");

mycode.code = ""; )

जबकि (sr.Read() != "*")

अगर (mycode.masSost == 4)

(यदि (mycode.masSost == 6)

sw.लिखें (dt.Columns.Count.ToString ());

जबकि (sr.Read() != "*")

अगर (Convert.ToInt32(mycode.masValue)< dt.Columns.Count)

(अगर (mycode.masSost == 7)

sw.लिखें (dt.Columns.masValue)]। DataType.Name);

sw.लिखें (dt.Columns.masValue)].ColumnName);)

यदि उपयोगकर्ता किसी स्तंभ या पंक्ति तक पहुँचने का प्रयास करता है जो मौजूद नहीं है, तो संबंधित त्रुटि प्रविष्टि त्रुटि लॉग में जोड़ दी जाती है।

lv.Items.Add(thisTemplate, thisTemplate);

lv.Items.SubItems.Add(mycode.code);

mycode.code = ""; )

जबकि (sr.Read() != "*")

(बूल क्रिएट = असत्य;

के लिए (int a = 0; a< masPeremCount; a++)

अगर (Convert.ToInt32(masPerem)< dt.Columns.Count)

(अगर (mycode.masSost == 13)

sw.लिखें(dt.Columns)].ColumnName);

sw.लिखें(dt.Columns)].DataType.Name);

lv.Items.Add(thisTemplate, thisTemplate);

lv.Items.SubItems.Add(mycode.code);

lv.Items.SubItems.Add ("इंडेक्स स्कोप से बाहर है");

mycode.code = ""; )

जबकि (sr.Read() != "*")

अगर (बनाएं == झूठा) (

यदि उपयोगकर्ता एक गैर-मौजूद चर को कॉलम या पंक्ति अनुक्रमणिका के रूप में निर्दिष्ट करता है, तो त्रुटि लॉग में संबंधित त्रुटि प्रविष्टि जोड़ दी जाती है।

lv.Items.Add(thisTemplate, thisTemplate);

lv.Items.SubItems.Add(mycode.code);

lv.Items.SubItems.Add ("एक गैर-मौजूद चर का उपयोग करने की कोशिश कर रहा है");

जबकि (sr.Read() != "*")

अगर (mycode.masSost == 5)

(इंट n1 = 0, n2 = 0, nn = 0;

अगर (mycode.masSost == 6)

(sw.Write(dt.Rows.Count.ToString ());

जबकि (sr.Read() != "*")

(अगर (mycode.masSost == 12)

(( n1 = कनवर्ट करें। ToInt32 (mycode.masValue);

अगर (mycode.masSost == 12)

( n2 = कनवर्ट करें। ToInt32 (mycode.masValue);

(बूल क्रिएट = असत्य;

के लिए (int a = 0; a< masPeremCount; a++)

अगर (masPerem == mycode.masValue)

n2 = कनवर्ट करें। ToInt32 (masPerem);

यदि एक चर का उपयोग किसी स्तंभ या पंक्ति के सूचकांक के रूप में किया गया था और इसका मान क्रमशः तालिका के स्तंभों या पंक्तियों की संख्या से अधिक है, तो इस त्रुटि के बारे में एक प्रविष्टि त्रुटि लॉग में जोड़ दी जाती है।

अन्य (यदि (n1 >= dt. Rows.Count)

(अगर (mycode.code!= "")

(lv.Items.Add(thisTemplate, thisTemplate);

lv.Items.SubItems.Add(mycode.code);

lv.Items.SubItems.Add("सूचकांक" + n1 + "सीमा से बाहर है");))

अगर (n2 >= dt.Columns.Count)

(अगर (mycode.code!= "")

( lv.Items.Add(thisTemplate, thisTemplate);

lv.Items.SubItems.Add(mycode.code);

lv.Items.SubItems.Add("सूचकांक" + n2 + "सीमा से बाहर है"); ))

mycode.code = ""; )

जबकि ((sr.Read() != "*") && (!sr.EndOfStream))

अगर (mycode.masSost == 2)

masPerem = mycode.masValue;

masPerem = mycode.masValue;

एनके = मासपेरेमकाउंट;

मासपेरेमकाउंट++;

अगर (mycode.masSost == 12)

के = कनवर्ट करें। ToInt32 (mycode.masValue); वरना

अगर (mycode.masSost == 4) k = dt.Columns.Count;

अन्य कश्मीर = डीटी.पंक्तियाँ।गणना;

जबकि (sr.Read() != "*") ( )

यदि उपयोगकर्ता ने एक चक्र घोषित किया और उसके बाद "(" डाले बिना इसकी शुरुआत का संकेत नहीं दिया, तो इसे एक त्रुटि माना जाता है और इसके बारे में एक प्रविष्टि त्रुटि लॉग में जोड़ दी जाती है।

सी = कन्वर्ट। तोचर (एसआर। रीड ());

सी = कन्वर्ट। तोचर (एसआर। रीड ());

सी = कन्वर्ट। तोचर (एसआर। रीड ());

( lv.Items.Add(thisTemplate, thisTemplate);

lv.Items.SubItems.Add(mycode.code);

lv.Items.SubItems.Add ("साइकिल प्रारंभ निर्दिष्ट नहीं है");

मायकोड। सही = गलत;

एनकोड++; ) वरना (

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

Directory.CreateDirectory ("अस्थायी");

StreamWriter sw1=new StreamWriter("Temp\\Temp"+tempF.ToString()+.txt", false, Encoding.UTF8);

सी = कन्वर्ट। तोचर (एसआर। रीड ());

सी = कन्वर्ट। तोचर (एसआर। रीड ()); )

इंट साइकिलकाउंट = 0;

जबकि (सी! = ")")

अगर (sr.EndOfStream)

सी = कन्वर्ट। तोचर (एसआर। रीड ());

अगर ((सी == ")") && (सिकलकाउंट! = 0))

(सिकलकाउंट--;

सी = कन्वर्ट। तोचर (एसआर। रीड ()); ) )

StreamReader sr1 = नया StreamReader("Temp\\Temp" + tempF.ToString() + ".txt", Encoding.UTF8);

इंट सिकलकोड = 0;

बूल साइन 2 = झूठा;

जबकि (!sr1.EndOfStream)

(सी = कनवर्ट करें। तोचर (sr1.Read ());

अगर ((सी! = "*") && (साइन 2 == सत्य))

( s1 += c.ToString (); )

अगर ((सी == "*") && (साइन 2 == झूठा))

अगर ((सी == "*") && (साइन 2 == सत्य))

(साइन 2 = असत्य;

अन्य s1 += c.ToString (); ) )

के लिए (int a = Convert.ToInt32(mycode.masValue); a< k; a++)

( masPerem = a.ToString ();

ExecuteCode(NCode + 1, true, new StreamReader("Temp\\Temp" + tempF.ToString() + ".txt", Encoding.UTF8), sw, tempF);)

लूप समाप्त होने के बाद, अस्थायी फ़ाइल हटा दी जाती है, और लूप की नेस्टिंग गहराई एक से कम हो जाती है।

मासपेरेम = "";

मासपेरेम = "";

एनकोड = सिकलकोड + 1;

File.Delete("Temp\\Temp" + tempF.ToString() + ".txt");

कंस्ट्रक्टर का उपयोग करके बनाए गए टेम्प्लेट के साथ काम करने के लिए एल्गोरिथ्म को निम्नलिखित विधियों द्वारा वर्णित किया गया है: Execute, GetTruthTable, ExecuteTag।

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

डेटाटेबल ट्रुथडेट = नया डेटाटेबल ();

StreamWriter sw=new StreamWriter(textBox4.Text+"Output file.xml",false,Encoding.UTF8);

के लिए (int a = 0; a<= dt.Columns.Count;a++)

truedt.Columns.Add("",typeof(bool));

के लिए (int a = 0; a<= dt.Rows.Count; a++)

(डेटारो डॉ = ट्रुथडीटी। न्यूरो ();

के लिए (इंट बी = 0; बी< dr.ItemArray.Length; b++)

truedt.rows.Add(dr); )

उसके बाद, लूप निष्पादित करना शुरू कर देता है, प्रत्येक टैग को हाइलाइट करता है जो इसके प्रकार को निर्धारित करता है, और इसके आधार पर इसे निष्पादित करता है।

जबकि (! पूर्ण)

(टैगइंड = गेटटैगइंडेक्स (आइटम);

अगर (mastag.type == type.global || mastag.type == type.main)

अगर (mastag.type == type.block)

अगर (आइटम> = आइटम्सकाउंट)

पूर्ण = सत्य; )

यदि टैग प्रकार वैश्विक या मुख्य है, तो टैग की सामग्री को केवल फ़ाइल में लिखा जाता है।

अगर (mastag.name!= "")

sw.WriteLine (आइटम);

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

बूल हैरो = झूठा;

टैग ब्लॉकटैग = नया टैग.इंडएफ - मास्टाग.इंडएस - 1];

के लिए (इंट ए = मास्टाग.इंडएस + 1, बी = 0; ए< mastag.indF; a++, b++)

(ब्लॉकटैग [बी] = मैटाग;

अगर (ब्लॉकटैग [बी]। टाइप == प्रकार। सरल)

अगर (ब्लॉकटैग [बी]। स्रोत == "पंक्ति अनुक्रमणिका" || ब्लॉकटैग [बी]। स्रोत == "सेल सामग्री")

हैरो = सच;)

उसके बाद, एक "सत्य तालिका" बनाई जाती है और सूची में मिलने वाले साधारण टैग की सभी शर्तें उस पर लागू होती हैं।

ट्रुथडेट = क्रिएटटेबल (ट्रुथडीटी, डीटी);

के लिए (int a = 0; a< blocktag.Length; a++)

अगर (ब्लॉकटैग [ए]। टाइप == प्रकार। सरल)

ट्रुथडेट = गेटट्रुथटेबल (डीटी, ट्रुथडेट, ब्लॉकटैग [ए]);

इसके अलावा, इस पर निर्भर करते हुए कि क्या स्ट्रिंग इंडेक्सिंग का उपयोग करने वाले टैग पाए गए थे, या तो केवल एक कॉलम चक्र बनाया गया है, या कॉलम और लाइनों के साथ चक्र, जिसमें ब्लॉक वाले को छोड़कर, सभी टैग सामने आए हैं।

के लिए (int a = 0; a< dt.Rows.Count; a++)

के लिए (इंट बी = 0; बी< dt.Columns.Count; b++)

बूल वासएक्स = झूठा;

StreamWriter swt = new StreamWriter("temp.txt", false, Encoding.UTF8);

के लिए (इंट सी = 0; सी< blocktag.Length; c++)

अगर (ब्लॉकटैग [सी]। टाइप == टाइप। ग्लोबल)

अगर (ब्लॉकटैग [सी]। नाम! = "")

swt.WriteLine(items.indS + c + 1]);

अगर (ब्लॉकटैग [सी]। नाम! = "")

wasEx=ExecuteTag(dt, truedt, blocktag[c], a, b, swt); )

( StreamReader sr = new StreamReader ("temp.txt", Encoding.UTF8);

sw.लिखें (sr.ReadToEnd ());

File.Delete("temp.txt");

(के लिए (int a=0;a

के लिए (इंट सी = 0; सी< blocktag.Length; c++)

(अगर (ब्लॉकटैग [सी]। टाइप == टाइप्स। ग्लोबल)

अगर (ब्लॉकटैग [सी]। नाम! = "")

sw.WriteLine(items.indS + c + 1]);

अगर (ब्लॉकटैग [सी]। टाइप == प्रकार। सरल)

अगर (ब्लॉकटैग [सी]। नाम! = "")

ExecuteTag (डीटी, ट्रुथडीटी, ब्लॉकटैग [सी], 0, ए, एसडब्ल्यू);

यदि टैग प्रकार सरल है, तो उसके लिए एक नई "सत्य तालिका" बनाई जाती है और टैग निष्पादित किया जाता है।

अगर (mastag.type == type.simple)

(truthdt=CreateTable(truthdt,dt);

डेटाटेबल tempdt = GetTruthTable (डीटी, ट्रुथडेट, मास्टग);

अगर (mastag.name!="")

ExecuteTag (dt, tempdt, matag, 0, 0, sw);

GetTruthTable विधि "सत्य तालिका" पर शर्तों को लागू करती है। तर्क के रूप में, यह डेटाबेस से मूल्यों के साथ एक तालिका लेता है, पहले से बनाई गई "ट्रुथ टेबल" और एक टैग, जिसकी स्थिति को संसाधित करने की आवश्यकता होती है।

ExecutTag विधि एक साधारण टैग निष्पादित करती है। यह तर्क के रूप में एक डेटा तालिका, एक "सत्य तालिका", एक टैग, एक पंक्ति अनुक्रमणिका, एक स्तंभ अनुक्रमणिका और एक फ़ाइल लेखन स्ट्रीम लेता है।

3.2 यूजर इंटरफेस का विवरण

कार्यक्रम की मुख्य विंडो को कई भागों में विभाजित किया गया है: ".dbf", "टेम्पलेट्स", ".xml" और त्रुटि लॉग। सभी भागों में, लॉग को छोड़कर, निर्देशिकाओं के चयन के लिए जिम्मेदार तत्व होते हैं जिनमें फाइलें होती हैं या जिनमें फाइलों को सहेजा जाना चाहिए। त्रुटि लॉग को तीन स्तंभों की सूची के रूप में प्रस्तुत किया जाता है: "पैटर्न", "स्ट्रिंग", "त्रुटि"। पहले कॉलम में उस टेम्प्लेट का नाम होता है जिसमें त्रुटि पाई गई थी। दूसरे में, वह पंक्ति जहाँ त्रुटि हुई। तीसरा, त्रुटि का प्रकार।

इसके अलावा प्रपत्र पर ऐसे तत्व हैं जो किसी भी समूह से संबंधित नहीं हैं। उनमें से कुछ कार्य की प्रगति को दर्शाते हैं, जबकि अन्य स्वयं प्रक्रिया शुरू करते हैं।

चित्र 3.1 मुख्य रूप दिखाता है - कार्यक्रम की मुख्य विंडो।

चित्र 3.1 - कार्यक्रम की मुख्य विंडो

टेम्प्लेट के साथ काम करते समय, एक अतिरिक्त प्रोग्राम विंडो खुलती है, जिसमें टेम्प्लेट नाम के लिए एक फ़ील्ड, एक तत्व जिसमें टेम्प्लेट कोड होता है, और टेम्प्लेट को सहेजने और विंडो को बंद करने के लिए बटन होते हैं।

चित्र 3.2 अतिरिक्त प्रोग्राम विंडो (टेम्पलेट संपादक) का दृश्य दिखाता है।

चित्र 3.2 - टेम्पलेट संपादक विंडो

मुख्य रूप पर भी एक नियंत्रण होता है जो कंस्ट्रक्टर का उपयोग करके टेम्पलेट बनाने के लिए प्रपत्र खोलता है।

कंस्ट्रक्टर फॉर्म में निम्नलिखित नियंत्रण होते हैं: पहले से बनाए गए टैग की एक सूची, एक नए टैग का नाम दर्ज करने के लिए एक फ़ील्ड, एक टैग प्रकार के चयन के लिए एक ड्रॉप-डाउन सूची, एक टैग स्रोत का चयन करने के लिए एक ड्रॉप-डाउन सूची, एक पैनल टैग की स्थिति बनाने के लिए तत्वों के साथ, डेटाबेस फ़ाइल को परिभाषित करने के लिए एक फ़ील्ड, आउटपुट फ़ाइल के स्थान को परिभाषित करने के लिए एक फ़ील्ड, टैग जोड़ने और हटाने के लिए बटन, प्रसंस्करण शुरू करने के लिए एक बटन। चित्र 3.3 टेम्पलेट डिज़ाइनर विंडो दिखाता है।

चित्र 3.3 - टेम्प्लेट कंस्ट्रक्टर विंडो

सॉफ्टवेयर के काम के परिणामस्वरूप, एक्सएमएल भाषा के विभिन्न संस्करणों की एक्सएमएल फाइलें प्राप्त हुईं। संस्करण dBase II, dBase III और dBase IV के dbf प्रारूप के डेटाबेस इनपुट डेटा के रूप में उपयोग किए गए थे। कनवर्ट की गई फ़ाइलें निम्नलिखित ब्राउज़रों के साथ सही ढंग से खोली गईं: इंटरनेट एक्सप्लोरर 10, मोज़िला फ़ायरफ़ॉक्स 19, Google क्रोम संस्करण 27.0.1453.93, ओपेरा 12.15. ब्राउज़रों के अलावा, फ़ाइलों को किसी भी टेक्स्ट एडिटर के साथ देखा और संपादित किया जा सकता है। प्राप्त परिणामों के आधार पर, यह निष्कर्ष निकाला जा सकता है कि कार्यक्रम के संचालन के दौरान प्राप्त एक्सएमएल फाइलें ग्राहक की आवश्यकताओं को पूरा करती हैं।

3. 3 सॉफ्टवेयर उत्पाद विश्वसनीयता का परीक्षण और मूल्यांकन

सॉफ़्टवेयर उत्पाद का परीक्षण करते समय, निम्नलिखित त्रुटियों की पहचान की गई:

डेटाबेस तालिका सेल में अनुक्रमण त्रुटि;

लूप चर आउटपुट त्रुटि;

एक त्रुटि जो तब होती है जब किसी पंक्ति या स्तंभ का सूचकांक उनकी संख्या से अधिक हो जाता है।

1. डेटाबेस तालिका कक्ष में अनुक्रमण त्रुटि। तब होता है जब टेम्पलेट में "*row[x].column[y]*" फॉर्म का कोड होता है, जहां x और y संख्याएं या चर होते हैं। टेम्पलेट में समान स्ट्रिंग्स को संसाधित करते समय प्रोग्राम कोड में एक अतिरिक्त शर्त जोड़कर समस्या का समाधान किया गया था।

2. लूप चर आउटपुट त्रुटि। तब होता है जब प्रपत्र "*x*" का एक कोड टेम्पलेट में निर्दिष्ट किया जाता है, जहां x एक चर है। पहचानकर्ता तालिका के संकलन को बदलकर समस्या का समाधान किया गया।

3. एक त्रुटि जो तब होती है जब किसी पंक्ति या स्तंभ की अनुक्रमणिका उनकी संख्या से अधिक हो जाती है। तब होता है जब टेम्पलेट में "*column[x].name*" जैसा कोड होता है, जहां x एक संख्या या एक चर होता है जिसका मान स्तंभों की संख्या से अधिक होता है। सूचकांक मूल्य और पंक्तियों या स्तंभों की संख्या की तुलना करके समस्या को हल किया गया था, यदि सूचकांक अधिक हो जाता है, तो इसके बारे में एक प्रविष्टि त्रुटि लॉग में जोड़ दी जाती है और कार्यक्रम चलता रहता है।

3. 4 लागत गणना

विभिन्न डेटाबेस प्रारूपों के साथ लगातार काम करने वाले व्यवसायों को एक डेटाबेस प्रारूप से दूसरे में परिवर्तित करने की प्रक्रिया को स्वचालित करने की आवश्यकता होती है। इससे श्रमिकों की उत्पादकता बढ़ेगी, साथ ही उनकी शिक्षा की आवश्यकताएं भी कम होंगी।

सॉफ़्टवेयर उत्पाद, सॉफ़्टवेयर भाग के अलावा, साथ में दस्तावेज़ीकरण भी शामिल है, जो डेवलपर्स की बौद्धिक गतिविधि का परिणाम है।

नियंत्रण के स्वचालन से जुड़े पूंजी निवेश की संरचना में, एक स्वचालन परियोजना (पूर्व-उत्पादन लागत) के विकास और परियोजना के कार्यान्वयन के लिए पूंजी निवेश (कार्यान्वयन लागत) के लिए पूंजी निवेश आवंटित किया जाता है:

जहां के पी - डिजाइन के लिए पूंजी निवेश; р - परियोजना कार्यान्वयन के लिए पूंजी निवेश।

डिजाइन के लिए पूंजी निवेश की गणना। सॉफ्टवेयर डिजाइन के लिए पूंजी निवेश लागत अनुमान तैयार करके निर्धारित किया जाता है और सूत्र द्वारा निर्धारित किया जाता है:

जहां के एम - सामग्री की लागत; के पीआर - परियोजना के विकास में सीधे शामिल इंजीनियरिंग और तकनीकी कर्मियों के लिए सामाजिक बीमा में कटौती के साथ मूल और अतिरिक्त मजदूरी; के मैश - प्रोग्राम को डिबग करने के लिए मशीन समय के उपयोग से जुड़ी लागत; के सी - तीसरे पक्ष की सेवाओं के लिए भुगतान, अगर डिजाइन तीसरे पक्ष की भागीदारी के साथ किया जाता है; के एन - डिजाइन विभाग की ओवरहेड लागत। सभी गणना पारंपरिक इकाइयों (सी.यू.) में की जाएंगी, जो सॉफ्टवेयर विकास के समय प्रिडनेस्ट्रोवियन रिपब्लिकन बैंक में एक अमेरिकी डॉलर की लागत से मेल खाती है।

माल की लागत। आइए लागत अनुमान निर्धारित करें और सामग्री K m की लागत की गणना करें, जो सॉफ्टवेयर के विकास के लिए गई थी। सामग्री की सूची थीसिस के विषय द्वारा निर्धारित की जाती है। उनमें निम्नलिखित शामिल हैं: सूचना वाहक (कागज, चुंबकीय डिस्क) और श्रम की पहनने योग्य वस्तुएं (कलम, पेंसिल, रबर बैंड)। सामग्री के लिए लागत अनुमान तालिका 3.1 में प्रस्तुत किया गया है।

तालिका 3.1 - सामग्री की अनुमानित लागत

इसी तरह के दस्तावेज़

    स्थानांतरित डीबीएफ फाइलों (उपयोगकर्ता द्वारा निर्दिष्ट टेम्पलेट के अनुसार) के आधार पर एक्सएमएल प्रारूप फ़ाइल बनाने के लिए कनवर्टर प्रोग्राम का कार्यान्वयन। कोड का उपयोग करके और कंस्ट्रक्टर का उपयोग करके टेम्प्लेट बनाएं। सॉफ्टवेयर उत्पाद वास्तुकला डिजाइन।

    थीसिस, जोड़ा गया 06/27/2013

    एक कनवर्टर प्रोग्राम का विकास, जो स्थानांतरित डीबीएफ फाइलों की सामग्री के आधार पर, उपयोगकर्ता द्वारा निर्दिष्ट टेम्पलेट के अनुसार एक एक्सएमएल फाइल बनाता है। दो तरह से टेम्प्लेट बनाने पर विचार करें: कोड का उपयोग करना और एक कंस्ट्रक्टर का उपयोग करना।

    टर्म पेपर, जोड़ा गया 06/24/2013

    एक प्रोग्राम के यूजर इंटरफेस को डिजाइन करना जो फाइलों को एन्क्रिप्ट और डिक्रिप्ट करता है। डेटा प्रस्तुति प्रारूप का विकल्प। प्रक्रियाओं, मैक्रोज़ और उनके उद्देश्य की सूची। कार्यक्रम में प्रयुक्त कार्यों का विवरण, इसका परीक्षण और डिबगिंग।

    टर्म पेपर, जोड़ा गया 05/17/2013

    डिस्क पर डुप्लिकेट फ़ाइलों के "खोज इंजन" की विशेषताएं। प्रोग्रामिंग वातावरण का विकल्प। एक सॉफ्टवेयर उत्पाद का विकास। डिस्क पर डुप्लिकेट फ़ाइलों की खोज करने वाले प्रोग्राम के लिए बुनियादी आवश्यकताएं। छिपी फ़ाइलें देखें।

    टर्म पेपर, जोड़ा गया 03/28/2015

    संग्रहकर्ता के काम की विशेषताएं - एक कंप्यूटर प्रोग्राम जो आसान संचरण, कॉम्पैक्ट स्टोरेज के लिए डेटा को एकल संग्रह फ़ाइल में संपीड़ित करता है। संग्रह प्रक्रिया की विशेषताएं - फाइलें लिखना और खोलना - फाइलें खोलना।

    सार, जोड़ा गया 03/26/2010

    पार्टलिस्ट एप्लिकेशन से विशिष्टताओं के निर्यात के लिए एक सॉफ्टवेयर उत्पाद का विकास। किसी फ़ाइल में सूचना स्थानांतरित करने की विधि का चुनाव, प्रस्तुति के लिए प्रारूप। कनवर्टर विकास, यूजर इंटरफेस कार्यान्वयन। विकास की प्रासंगिकता के लिए तर्क।

    थीसिस, जोड़ा गया 09/25/2014

    सॉफ्टवेर डिज़ाइन। फ़ाइल निर्देशिका के प्रारंभिक गठन की योजना, फ़ाइल निर्देशिका प्रदर्शित करना, फ़ाइलों को हटाना, फ़ाइलों को नाम, निर्माण तिथि और आकार द्वारा प्रत्यक्ष चयन विधि का उपयोग करना। फ़ाइल सिस्टम में निर्देशिका प्रबंधन।

    टर्म पेपर, जोड़ा गया 01/08/2014

    WAV और mp3 फ़ाइल स्वरूपों के लक्षण। एक ग्राफिकल इंटरफ़ेस और एप्लिकेशन आर्किटेक्चर विकसित करना, केस डायग्राम का निर्माण करना। प्रोग्राम ऑपरेशन एल्गोरिदम का विकास: TrimWavFile विधि, TrimMp3, ChangeVolume, speedUpX1_2, speedDownX1_2.

    टर्म पेपर, जोड़ा गया 12/20/2013

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

    प्रयोगशाला कार्य, जोड़ा गया 04/08/2014

    एक तारे के आकार की, रिंग और मनमाना टोपोलॉजी के साथ कंप्यूटर नेटवर्क में फाइलों के इष्टतम स्थान के लिए एक मॉडल का निर्माण और सत्यापन। फ़ाइलों को स्थानांतरित करने के लिए आवश्यक डेटा की मात्रा। कंप्यूटर नेटवर्क नोड्स पर फाइलों का इष्टतम वितरण।

DBF एक डेटाबेस फ़ाइल है, जिसके साथ काम करने की क्षमता पहले Microsoft Office वातावरण में एकीकृत की गई थी। एक्सेस और एक्सेल अनुप्रयोगों ने प्रारूप के साथ काम किया, बाद में एक्सेस को पैकेज से हटा दिया गया और एक अलग प्रोग्राम बन गया, और एक्सेल में 2007 से डाटाबेसफाइल समर्थन काफी सीमित था।

यदि आप किसी DBF फ़ाइल को सीधे Excel में नहीं खोल सकते हैं, तो आपको पहले उसे कनवर्ट करना होगा।

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

डीबीएफ के साथ काम करते समय एक्सेल की समस्या

Excel 2003 में, DBF को खोलना और संपादित करना संभव था, साथ ही XLS दस्तावेज़ों को इस प्रारूप में सहेजना संभव था:

  1. मेनू बार से "फाइल" चुनें।
  2. अगला, "इस रूप में सहेजें" पर क्लिक करें।
  3. ड्रॉप-डाउन सूची से "*.dbf" चुनें।

महत्वपूर्ण। 2007 के बाद से, आप एक्सेल में डेटाबेस फॉर्मेट को खोल और देख सकते हैं, लेकिन आप इसमें बदलाव नहीं कर सकते हैं या इसमें .xls दस्तावेज़ सहेज नहीं सकते हैं। मानक कार्यक्रम उपकरण अब इस संभावना के लिए प्रदान नहीं करते हैं।

हालाँकि, एप्लिकेशन के लिए विशेष ऐड-ऑन हैं जो इसमें इस तरह के फ़ंक्शन को जोड़ते हैं। विभिन्न मंचों पर नेटवर्क में, प्रोग्रामर अपने विकास पोस्ट करते हैं, आप विभिन्न विकल्प पा सकते हैं। XslToDBF नामक सबसे लोकप्रिय ऐड-ऑन को डेवलपर की साइट http://basile-m.narod.ru/xlstodbf/download.html से डाउनलोड किया जा सकता है। डाउनलोड मुफ्त है, लेकिन यदि आप चाहें, तो आप अपने वॉलेट या कार्ड में किसी भी राशि को स्थानांतरित करके परियोजना का समर्थन कर सकते हैं।

स्थापना और उपयोग:

  1. उपरोक्त साइट से संग्रह डाउनलोड करें।
  2. इसमें से XlsToDBF.xla निकालें और इसे अपने कंप्यूटर पर सेव करें।
  3. एक्सेल में, बाईं ओर माइक्रोसॉफ्ट आइकन बटन के साथ मेनू पर जाएं, विकल्प।
  4. एक्सेल विकल्प के तहत ऐड-इन्स चुनें।
  5. "मैनेज / एक्सेल ऐड-इन्स" लाइन में, "गो" पर क्लिक करें।
  6. ब्राउज़ करें क्लिक करें और सहेजे गए XlsToDBF.xla को इंगित करें।
  7. ऐड-ऑन की सूची में, "XLS -> DBF" प्रविष्टि चेक किए गए चेकबॉक्स के साथ दिखाई देनी चाहिए। ध्यान दें कि यह मौजूद नहीं है।
  8. अब आप .xls को .dbf फॉर्मेट में सेव कर सकते हैं। उसी साइट से आप उपयोग के लिए विस्तृत निर्देश डाउनलोड कर सकते हैं। मुख्य बात सारणीबद्ध डेटा को ठीक से तैयार करना है।
  9. तालिका तैयार होने के बाद, किसी भी भरे हुए सेल का चयन करें और Alt और F . दबाएं
  10. खुलने वाली मैक्रो विंडो में, फ़ील्ड में XlsToDBF टाइप करें, केस महत्वपूर्ण नहीं है।
  11. रन पर क्लिक करें।
  12. यदि आपने डेटा को सही ढंग से तैयार और स्वरूपित किया है, तो डेटाबेस फ़ाइल उस फ़ोल्डर में सहेजी जाएगी जहां मूल XLS स्थित है।

यदि आप ऑफिस में कुछ भी नहीं बदलना चाहते हैं, ऐड-इन्स और थर्ड-पार्टी एप्लिकेशन पर भरोसा नहीं करते हैं, तो आप XLS फाइल को DBF में बदलने के लिए अधिक समय लेने वाला तरीका पेश कर सकते हैं:

  1. माइक्रोसॉफ्ट एक्सेस खरीदें और इंस्टॉल करें।
  2. एक्सेल में, दस्तावेज़ तैयार करें और सहेजें।
  3. एमएस एक्सेस में "ओपन" बटन पर क्लिक करें और फ़ाइल का चयन करें।
  4. अब आपको आयात को सही ढंग से कॉन्फ़िगर करने की आवश्यकता है।
  5. शुरू करने के लिए एक शीट चुनें। यदि कई हैं, तो आपको अभी भी एक बार में एक करना होगा।
  6. यदि तालिका में हेडर पंक्ति है, तो संबंधित बॉक्स को चेक करें।
  7. इसके बाद, आप तालिका का नाम बदल सकते हैं।
  8. अब "बाहरी डेटा" पर क्लिक करें।
  9. "निर्यात", "उन्नत" बटन पर क्लिक करें।
  10. डीबेस फ़ाइल का चयन करें।
  11. एक नाम निर्दिष्ट करें और स्थान सहेजें।

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

परिवर्तन

कार्यालय कार्यक्रमों से खुद को पीड़ित न करने के लिए, कई एप्लिकेशन बनाए गए हैं जो आपको डेटा को एक प्रारूप से दूसरे प्रारूप में स्थानांतरित करने की अनुमति देते हैं। सबसे पहले, लगभग सभी शक्तिशाली डीबीएमएस प्रोग्राम एक्सएलएस को निर्यात और लोड करने की क्षमता प्रदान करते हैं। दूसरे, छोटी उपयोगिताएँ हैं जो परिवर्तित करने में विशेषज्ञ हैं। यहाँ उनमें से कुछ हैं:


इन सभी कार्यक्रमों में, रूपांतरण इस तथ्य पर आता है कि आपको स्रोत फ़ाइल खोलने की आवश्यकता है, और फिर "कन्वर्ट" या "निर्यात" कमांड निष्पादित करें।

मुफ्त ऑनलाइन रूपांतरण सेवाएं भी हैं। ऐसी साइटों पर, स्रोत फ़ाइल भेजने (अपलोड) करने का प्रस्ताव है, "कन्वर्ट" पर क्लिक करें, जिसके बाद परिवर्तित दस्तावेज़ का लिंक दिखाई देगा। आप ऐसी सेवाओं पर कितना भरोसा कर सकते हैं, निर्णय व्यक्तिगत है, आपके अपने जोखिम और जोखिम पर है।

इस प्रकार आप एक्सेल में डीबीएफ खोल सकते हैं, लेकिन यदि इसका संस्करण 2007 और नया है, तो इसके साथ और कुछ नहीं किया जा सकता है, बस देखो। XLS में संपादन, बचत के लिए, विशेष ऐड-ऑन या प्रोग्राम हैं, साथ ही विपरीत दिशा में कनवर्ट करने के लिए भी। यदि आपके पास विभिन्न अनुप्रयोगों में डीबीएफ के साथ कनवर्ट करने और काम करने का अनुभव है, तो कृपया टिप्पणियों में अपनी युक्तियां साझा करें।