मेरे पास गतिशील सरणी है। लेकिन शुरुआत में मैं सरणी की लंबाई नहीं जान रहा हूं। क्या मैं पहले ऐसा कर सकता हूं कि मैंने इसकी लंबाई 1 के रूप में सेट की है और फिर लंबाई बढ़ाएं क्योंकि मुझे पहले से संग्रहीत डेटा खोए बिना चाहिए?
मुझे पता है कि मैं टीएलिस्ट का उपयोग करके ऐसा कार्य कर सकता हूं। लेकिन मैं जानना चाहता हूं कि मैं इसे सरणी के साथ कर सकता हूं या नहीं?क्या मैं अपनी पिछली सामग्री खोए बिना डेल्फी सरणी का आकार बदल सकता हूं?
उत्तर
गतिशील Arrays को निहित डेटा खोए बिना बड़े आकार में आकार में बदला जा सकता है।
निम्नलिखित प्रोग्राम इसे क्रिया में प्रदर्शित करता है।
program Project7;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
A : Array of Integer;
I : Integer;
begin
for I := 0 to 19 do
begin
SetLength(A,I+1);
A[I] := I;
end;
for I := Low(A) to High(A) do
begin
writeln(A[I]);
end;
readln;
end.
बस जागरूक रहें कि यह एक स्मृति गहन ऑपरेशन हो सकता है, क्योंकि पूरे सरणी को स्थानांतरित किया जा सकता है यदि इसे आवंटित करने के लिए पर्याप्त जगह नहीं है। सूचियों के विपरीत, एक सरणी, एक contiguos स्मृति ब्लॉक में आवंटित किया जाना चाहिए। यही कारण है कि सूची (और अन्य कंटेनर) मौजूद हैं। अपनी जरूरतों के लिए सबसे अच्छा कंटेनर का प्रयोग करें। –
@ldsandon: सावधान रहें: डेल्फी में कई "सूचियां" सरणी के रूप में लागू की जाती हैं या कम से कम संगत मेमोरी ब्लॉक उसी तरह से "हुड के नीचे" सरणी के रूप में लागू होती हैं। टीएलिस्ट, टॉब्जेक्टलिस्ट, टीस्ट्रिंगलिस्ट ... इन सबसे आम तौर पर सामने आने वाली सूचियां ऑब्जेक्ट रैपर के अंदर सभी प्रभावी ढंग से सरणी हैं। इन "सरणी" की "लंबाई" में "असली" सरणी की तुलना में अधिक लचीला प्रबंधन उपकरण होते हैं, क्योंकि वे क्षमता ("सरणी" का आकार) और गणना (वास्तव में उपयोग किए जाने वाले तत्वों की संख्या) का समर्थन करते हैं ताकि आप पूर्व-आवंटित कर सकें इसे भरने से पहले आपको आवश्यक स्मृति (क्षमता के माध्यम से) की आवश्यकता होती है। – Deltics
स्पष्टीकरण का एक बिंदु जो आप पहले ही जानते हैं। मुझे नहीं पता कि इस अनुकूलन में से कोई भी आधुनिक मशीनों पर कोई फर्क नहीं पड़ता है, लेकिन उपरोक्त उदाहरण * प्रत्येक * नए तत्व के लिए SetLength() को कॉल करता है। Idsandon की टिप्पणी नोट्स के रूप में, SetLength मेमोरी गहन हो सकता है। यदि ऐसा है, तो SetLength() को कॉल करना अक्सर कम हो सकता है। उदाहरण के लिए, आप इसे हर 100 (या यहां तक कि 1000) तत्वों में एक बार कॉल कर सकते हैं। बेशक, आपको इसे कॉल करने की आवश्यकता होने पर ट्रैक करना होगा: यदि (लंबाई (ए) <(I + 1) तो सेटलेथेंथ (ए, आई + 100); – RobertFrank
- 1. मैं सी में सरणी का आकार कैसे बदल सकता हूं?
- 2. ईएफ 4 कोड का उपयोग पहले: मैं डेटा खोए बिना मॉडल कैसे बदल सकता हूं
- 3. क्या मैं ब्राउज़र विंडो का आकार बदल सकता हूं?
- 4. मैं JTabbedPane टैब का आकार कैसे बदल सकता हूं?
- 5. मैं छवि बटन का आकार कैसे बदल सकता हूं?
- 6. मैं Greasemonkey में रिकैप्चा का आकार कैसे बदल सकता हूं?
- 7. मैं एसवीजी सामग्री को कैसे हटा या बदल सकता हूं?
- 8. मैं बिना छवि के एक छवि का आकार कैसे बदल सकता हूं?
- 9. डीओएम के साथ आईफ्रेम को अपनी सामग्री खोए बिना कैसे स्थानांतरित करें?
- 10. मैं अपना फॉर्म कैसे आसानी से आकार बदल सकता हूं?
- 11. क्या मैं दैनिक फेवरॉन बदल सकता हूं
- 12. मैं पीईक्यूटी के साथ कर्सर आकार कैसे बदल सकता हूं?
- 13. क्या मैं कंसोल का उपयोग कर क्रोम विंडो का आकार बदल सकता हूं?
- 14. क्यूटी: अपनी नई सामग्री में विंडो का आकार कैसे बदलें
- 15. मैं अपनी पूरी सामग्री को पढ़ने के बिना एक ज़िप फ़ाइल कैसे पूंछ सकता हूं?
- 16. मैं एंड्रॉइड स्पिनर आकार को कैसे बदल सकता/सकती हूं?
- 17. क्या मैं डेल्फी XE2 में घड़ियों का क्रम बदल सकता हूं?
- 18. मैं अपनी वेबसाइट में फेसबुक से अपनी व्यक्तिगत सामग्री कैसे दिखा सकता हूं?
- 19. जावास्क्रिप्ट: मैं एक सरणी कैसे बदल सकता हूं?
- 20. ऑटो आकार एलिमेंट अपनी सामग्री के लिए
- 21. क्या मैं अपनी सभी एचटीएमएल सामग्री (पेज)
- 22. क्या मैं अपने फ़ोल्डर ब्रॉउज़रडियलॉग का शीर्षक बदल सकता हूं?
- 23. क्या मैं `nohup.out` का नाम बदल सकता हूं?
- 24. क्या मैं जावास्क्रिप्ट का संदर्भ बदल सकता हूं "यह"?
- 25. मैं ओपनकार्ट ऑर्डर ईमेल सामग्री को अपनी इच्छा के रूप में कैसे बदल सकता हूं? क्या यह संभव है?
- 26. मैं नई सामग्री के साथ पैनल की सामग्री को कैसे बदल सकता हूं?
- 27. अपनी सामग्री के अनुसार NSTextView का आकार कैसे बदलें?
- 28. मैं डब्ल्यूपीएफ विंडोज़ को कम "लगी" का आकार कैसे बदल सकता हूं?
- 29. एक ही ज्यामिति और सामग्री के साथ कई मेष, क्या मैं उनके रंग बदल सकता हूं?
- 30. div की सामग्री बदल गई है जब मैं अपनी सामग्री के आकार में स्वचालित रूप से एक div का आकार कैसे बदलूं?
क्या आपने गतिशील सरणी के बारे में प्रलेखन पढ़ा था? आप किस हिस्से को समझ नहीं पाए? –