2008-12-15 8 views
13

आरटीटीआई का उपयोग करके और कस्टम कोड नहीं - एक्सएमएल में डेल्फी ऑब्जेक्ट पेड़ को क्रमबद्ध करने का एक अच्छा तरीका क्या है?आरटीटीआई का उपयोग करके और कस्टम कोड नहीं - डेल्फी ऑब्जेक्ट पेड़ को एक्सएमएल में क्रमबद्ध करने का एक अच्छा तरीका क्या है?

मुझे यह जानना अच्छा लगेगा कि यह सुविधा पहले ही डेल्फी में बनाई गई है, लेकिन ऐसा प्रतीत नहीं होता है।

मुझे कुछ घटक (नीचे, नीचे) पाए गए हैं जो ऐसा लगता है कि वे इस कार्य को निष्पादित कर सकते हैं। क्या आपने उनमें से किसी एक या किसी अन्य पेशकश का उपयोग किया है? क्या आपने अपना खुद का निर्माण किया है? क्या मुझे डेल्फी में कुछ स्पष्ट याद आ रही है?

उत्तर

20

आप टीवीर्सिस्टेंट व्युत्पन्न कक्षाओं को क्रमबद्ध करने के लिए JVCL TJvAppXMLFileStorage घटक का उपयोग कर सकते हैं।

uses 
    JvAppXMLStorage; 

var 
    Storage: TJvAppXMLFileStorage; 
begin 
    Storage := TJvAppXMLFileStorage.Create(nil); 
    try 
    Storage.WritePersistent('', MyObject); 
    Storage.Xml.SaveToFile('S:\TestFiles\Test.xml'); 

    Storage.Xml.LoadFromFile('S:\TestFiles\Test.xml'); 
    Storage.ReadPersistent('', MyObject); 
    finally 
    Storage.Free; 
    end; 
end; 
+0

यह बहुत अच्छी तरह से काम करता है! धन्यवाद! –

4

JVCL के TJvTranslator.ComponentToXML

लिंक:http://sourceforge.net/project/showfiles.php?group_id=45786&package_id=42327

लाइसेंस: मोज़िला पब्लिक लाइसेंस ("एमपीएल") संस्करण के तहत लाइसेंस 1,1

अवलोकन: लगता है पुनरावर्ती क्रमबद्धता करें, लेकिन तथ्य यह है कि यह स्पष्ट रूप से "अनुवाद" के लिए है, मुझे रोक देता है।

6

DragonSoft के XML कक्षा Serializer

लिंक:http://www.dragonsoft.us/delphi_vcl.php

लाइसेंस: मोज़िला पब्लिक लाइसेंस ("एमपीएल") संस्करण 1,1

उद्धरण के तहत लाइसेंस: की अनुमति देता है एक्सएमएल के माध्यम से वीसीएल ऑब्जेक्ट्स/घटक को क्रमबद्ध/deserialize। ऑब्जेक्ट की स्थिति/पुनर्स्थापित करें (प्रकाशित गुण)। विशेष वर्ग समर्थन - टीएसट्रिंग्स, टीकोलेक्शन, टीपीचित्र। पूर्ण प्रक्रिया नियंत्रण।

5

Simdesign के NativeXml

लिंक:http://www.simdesign.nl/xml.html

लाइसेंस: € 29,95

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

14

JVCL एक विकल्प है, लेकिन यदि आप एक छोटे से, आत्म निहित पुस्तकालय पसंद करते हैं, वहाँ OmniXML (मोज़िला पब्लिक लाइसेंस 1.1, http://www.omnixml.com/)। मैंने इसे कई परियोजनाओं में सफलतापूर्वक उपयोग किया है, और मुझे डेल्फी में उपयोग करने के लिए यह सबसे सरल XML लाइब्रेरी मिलती है। OmniXML 'OmniXMLPersistent' इकाई के साथ आता है, जो आपको आरटीटीआई के माध्यम से जरूरी करता है, जैसा कि जेवीसीएल समाधान करता है।

// saving: 
pers : TPersistent; 
// SaveToFile is a class method, so no need to instantiate the object: 
TOmniXMLWriter.SaveToFile(pers, 'd:\path\file.xml', pfAttributes, ofIndent); 

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

// loading: 
TOmniXMLWriter.LoadFromFile(pers, 'd:\path\file.xml'); 
+0

दिलचस्प विकल्प! सलाह के लिये धन्यवाद। –

3

मैं सोप XML का उपयोग D2006 के लिए एक serializer कर दिया है: http://jankajanos.spaces.live.com/blog/cns!C3E2695FC6F7B0A4!791.entry

लेकिन वहाँ भी D2009 के लिए एक सामान्य संस्करण है।

+2

अच्छा है .. उन लोगों के लिए जो हंगरी "नोटेशन" नहीं समझते हैं ... इस लिंक का उपयोग करें: http://translate.google.com/translate?hl=hi&sl=hu&tl=en&u=http://jankajanos.spaces .live.com/ब्लॉग/सीएनएस! C3E2695FC6F7B0A4! 791.entry –

1

मैंने एक नया संस्करण अपलोड किया है। इसमें अंग्रेजी टिप्पणियां हैं: http://janosjanka.spaces.live.com/blog/cns!E5C994C03FC0E370!181.entry इसके अलावा, यह पूर्व-पंजीकृत वर्ग प्रकारों के माध्यम से किसी वस्तु को deserialize कर सकते हैं। यह एक बहुत ही उपयोगी चीज है क्योंकि आप बिना किसी प्रकार के वस्तुओं को deserialize कर सकते हैं।

संबंधित मुद्दे

 संबंधित मुद्दे