किसी ऑब्जेक्ट को अपने वर्तमान स्थिति में, फ़ाइल में कैसे सहेज सकता है? ताकि इसे तुरंत अपने सभी चर के साथ पढ़ा और बहाल किया जा सके।फ़ाइल में एक टॉब्जेक्ट सहेजना
उत्तर
जो आप खोज रहे हैं उसे ऑब्जेक्ट दृढ़ता कहा जाता है। यह article मदद कर सकता है, और यदि आप "डेल्फी स्थायी वस्तुओं" के लिए Google हैं तो कई अन्य हैं।
शायद उस आदमी ने Google का उपयोग किया जिसने उसे स्टैक ओवरफ्लो को इंगित किया। "Google से पूछें" वास्तविक जवाब नहीं है। फ़्रैंकोइस उत्तर इसके बजाय एक वास्तविक (और उपयोगी) उत्तर है। – Ampere
There is a good tutorial here। ध्यान रखें कि इस दृष्टिकोण का उपयोग करके किसी ऑब्जेक्ट को रन-टाइम पर सहेजने के लिए आपके पास आरटीटीआई (रन टाइम टाइप जानकारी) होनी चाहिए, इसलिए यह केवल को कक्षाओं के गुणों को प्रकाशित करेगा।
यहाँ S.O. पर एक रोल-अपने-खुद XML method भी है
आप TComponent से अपने वस्तु उतरना, तो आप एक फाइल करने के लिए वस्तु स्ट्रीम करने के लिए कुछ अंतर्निहित कार्यक्षमता का उपयोग कर सकते हैं। मुझे लगता है कि यह केवल साधारण वस्तुओं के लिए अच्छा काम करता है।
आप पाने के लिए कुछ नमूना कोड शुरू किया:
unit Unit1;
interface
uses
Classes;
type
TMyClass = class(TComponent)
private
FMyInteger: integer;
FMyBool: boolean;
FMyString: string;
public
procedure ToFile(AFileName: string);
published
property MyInteger: integer read FMyInteger write FMyInteger;
property MyString: string read FMyString write FMyString;
property MyBool: boolean read FMyBool write FMyBool;
end;
implementation
{ TMyClass }
procedure TMyClass.ToFile(AFileName: string);
var
MyStream: TFileStream;
begin
MyStream := TFileStream.Create(AFileName);
try
Mystream.WriteComponent(Self);
finally
MyStream.Free;
end;
end;
end.
जैसा कि पहले ही कहा गया है, सबसे आसान तरीका है एक स्ट्रीम और उसके WriteComponent और ReadComponent तरीकों का उपयोग करने के लिए है।
लेकिन बारे में पता दें कि:
- यह TComponent, सादे नहीं TObject के वंशज के लिए काम करता है;
- केवल प्रकाशित गुण (उन एक DFM में बचाया), नहीं सार्वजनिक वाले है और न ही (सुतरां) privwte लोगों के लिए ;
- आप जब घटक बहाल नाम संपत्ति के लिए एक विशेष ध्यान देना होगा।
आप आप इन अतः जवाब में इस्तेमाल कर सकते हैं कुछ कोड मिल सकता है: Replace visual component at runtime in Delphi, Duplicating components at Run-Time
आप पहले से ही अपने प्रश्न का कुछ अच्छा जवाब मिल गया है। आप जो वास्तव में कर रहे हैं उसके आधार पर, ऑब्जेक्ट्स को सहेजने के लिए प्री-बिल्ट लाइब्रेरी या घटक का उपयोग करना वांछनीय हो सकता है। यह एक सस्ती और निफ्टी लाइब्रेरी/घटक सेट है जो वस्तुओं को जारी रखने और पुनर्स्थापित करने के लिए तुच्छ बनाता है, और बहुत आसानी से (यानी, कोड के थोड़े से थोड़ा) किसी ऑब्जेक्ट के निरंतर अप्रकाशित सदस्यों को समायोजित करता है: http://www.deepsoftware.ru/rsllib/index.html रॉकेट विज्ञान की कोई चीज़ नहीं है, लेकिन यदि आप इस तरह की बहुत सारी चीजें कर रहे हैं तो यह घटक इसके लिए एक अच्छा ढांचा प्रदान करता है।
डेवलपर एक्सप्रेस भी ExpressEditors पुस्तकालय है कि उनके घटकों में से कुछ के साथ आता है के हिस्से के रूप एक सामान्य प्रयोजन cxPropertiesStore घटक भी शामिल है।
- बहुत ही सरल और कुशल समाधान: DragonSoft's XML Class Serializer
इसके अलावा, आप उपयोग कर सकते हैं JVCL TJvAppXMLFileStorage:
का उपयोग करता 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;
- 1. एक टॉब्जेक्ट
- 2. ऑडियो बाइट सहेजना [] को एक WAV फ़ाइल
- 3. सी # में अनुप्रयोग डेटा में फ़ाइल सहेजना
- 4. php में एक छवि बनाना, प्रदर्शन कार्य, फ़ाइल में सहेजना
- 5. एलिस्प: फ़ाइल में डेटा कैसे सहेजना है?
- 6. एक चार्ट नियंत्रण चित्र को फ़ाइल में कैसे सहेजना है?
- 7. पायथन - जीएनयू नैनो में संपादित एक फ़ाइल को सहेजना 2.2.4
- 8. एक बाइनरी फ़ाइल के रूप में डेटा फ्रेम को सहेजना
- 9. AS3 में XML फ़ाइल सहेजना संभव है
- 10. जावा फ़ाइल के साथ फ़ाइल में गुणों को सहेजना
- 11. एक प्रस्तुत फ़ाइल को एक स्थिर फ़ाइल के रूप में कैसे सहेजना है?
- 12. आईफोन - एक वीडियो फ़ाइल से ऑडियो अलग करना और इसे एक अलग फ़ाइल में सहेजना
- 13. एक ईएसआरआई आकार एसएचपी फ़ाइल का एक सबसेट विभाजित या सहेजना एक नई फाइल में?
- 14. enum मानों को एक शब्दकोश में सहेजना
- 15. अभिविन्यास परिवर्तन में एक बैकस्टैक सहेजना
- 16. एक बिटमैप को मेमोरीस्ट्रीम में सहेजना
- 17. स्थानीय भंडारण में एक मॉडल सहेजना
- 18. कोको में फ़ाइलों को सहेजना
- 19. subprocess.Popen से stdout को सहेजना, फ़ाइल में अधिक सामग्री लिखना
- 20. किसी फ़ाइल में QPixmap ऑब्जेक्ट को कैसे सहेजना है?
- 21. गुइल में प्रोग्राम छवि सहेजना
- 22. एक शब्द दस्तावेज़ को एक छवि के रूप में सहेजना
- 23. कैनवास से पीएनजी फ़ाइल में दृश्य को कैसे सहेजना है?
- 24. Win32 में GetSaveFileName के साथ फ़ाइल को कैसे सहेजना है?
- 25. एंड्रॉइड किसी ऑब्जेक्ट को फ़ाइल में कैसे सहेजना है?
- 26. PHP में फ़ाइल पढ़ने पर स्मृति को कैसे सहेजना है?
- 27. एक HTML फ़ाइल में एक php फ़ाइल का आउटपुट सहेजें
- 28. मुझे ओपनऑफिस में फ़ाइल को कैसे सहेजना चाहिए ताकि यह सबवर्जन में बाइनरी फ़ाइल न हो?
- 29. आईआर को फ़ाइल में कैसे सहेजना है और इसे निष्पादन योग्य फ़ाइल में कैसे बनाया जाए?
- 30. एक छवि के रूप में एक WPF कैनवास सहेजना
विकिपीडिया कहते हैं: "एक विशेष वस्तु की विशेषताओं के मान के सेट अपने राज्य कहा जाता है।" डेल्फी वास्तव में दृश्यता के बावजूद पूर्ण ऑब्जेक्ट स्थिति को सहेजने के लिए कोई अंतर्निहित तंत्र नहीं है, केवल प्रकाशित गुण समर्थित हैं। वैकल्पिक रूप से सभी क्षेत्रों IMHO को शामिल करने के लिए आरटीटीआई को बढ़ाया जाना चाहिए। – mjn
क्या यह स्थिति अपडेट की गई है? – PSyLoCKe