2011-08-15 6 views
6

मैं एप्लिकेशन को डीबग करते समय एक TStringList की पूरी सामग्री प्रदर्शित करना चाहता हूं। इसके बजाय मुझे पॉइंटर्स मिलते हैं। फ्लिस्ट केवल पता दिखा रहा है।मैं डीबगर में एक TStringList की सामग्री कैसे दिखा सकता हूं?

+1

डीबग मोड में, संपूर्ण सामग्री देखने के लिए एक अभिव्यक्ति (FList.Text) का मूल्यांकन करना संभव है। – mjn

+0

लेकिन आईआईआरसी (अभी अभी जांच नहीं कर सकता) केवल तभी जब आप डिबगिंग के दौरान प्रकारों के लिए फ़ंक्शन कॉल सक्षम करते हैं। –

+0

@ रुडी: यह केवल घड़ियों के लिए सच है। विंडो मूल्यांकन ("प्रक्रिया और सेटटर)" मूल्यांकन और संशोधित करें "कॉल में हमेशा संभव है। – dummzeuch

उत्तर

2

अब मैं विज़ुअलाइज़र का उपयोग करता हूं कि मेरे पास D2010 है। मैं एक ऐसे फ़ंक्शन का उपयोग करता था जिसे मैंने कैरेरे कहा था जो तारों की एक सरणी वापस कर देगा। अगर मैंने घड़ी विंडो में कैरे (MyStringList) जोड़ा, तो मैं स्ट्रिंग सूची की सामग्री की जांच कर पाऊंगा। मुझे वीबी 6 कोड लिखने के लिए नियोजित किया जाता था और मुझे विभिन्न प्रकार के 'सी' कार्यों को एक उपयोगी प्रकार में बदलने के लिए पसंद आया। ClientDataset फ़ील्ड के लिए स्ट्रिंगलिस्ट और CArray के लिए CArray अधिकतर डिबगिंग के लिए उपयोगी थे।

function CArray(List: TStrings): TStrArray; Overload; 
    var i, 
     iCount: Integer; 
    begin 
    iCount := List.Count; 
    SetLength(Result, iCount); 
    for i := 0 to Pred(iCount) do Result[i] := List[i]; 
    end; 
+0

नई विज़ुअलाइज़र सुविधा अच्छी है (यहां तक ​​कि अच्छा है कि आप अपने स्वयं के कस्टम विज़ुअलाइज़र लिख सकते हैं!)। डिफ़ॉल्ट 'टीएसट्रिंग्स' विज़ुअलाइज़र जो आईडीई के साथ जहाजों में टीएसट्रिंग सामग्री पर कुछ आकार सीमाएं हैं, हालांकि। –

7

यदि आप डेल्फी 2010 या बाद में उपयोग कर रहे हैं, तो डीबगर debug visualizers का उपयोग कर इसके लिए अनुमति देता है।

पुराने संस्करणों के लिए, आप वॉच विंडो में टेक्स्ट प्रॉपर्टी की सामग्री को डंप कर सकते हैं या आउटपुटडिबगस्ट्रिंग का उपयोग कर सकते हैं, लेकिन इसे पढ़ना मुश्किल है। आप सूची के प्रत्येक तत्व के लिए घड़ियों सेट अप कर सकते हैं, लेकिन यह बहुत छोटी सूचियों के लिए केवल व्यावहारिक है।

मैं शायद CodeSite या SmartInspect जैसे बाहरी लॉगिंग ऐप का उपयोग करता हूं जो आपको एक कॉल में एक TStringList की सामग्री को डंप करने देता है।

4

टेक्स्ट प्रॉपर्टी का निरीक्षण करें। यह स्ट्रिंगलिस्ट का संक्षिप्त संस्करण है।

3

के बाद से मैं बीडीएस MMVI, मैं का उपयोग कर एक "अति चतुर चालाक" उस तरह के जारी करने के लिए विधि का उपयोग कर, मैं बड़े XML दस्तावेज़ों के लिए इसका इस्तेमाल करते हैं। मैं संदर्भ फ़ाइल संपादक (रास्ते में डेल्फी में बहुत सक्षम मुफ्त पाठ संपादक लिखना शुरू)। डीबगर विंडो पर बस एक FList.SaveToFile ('content.txt') करें, क्योंकि संदर्भ फ़ाइल संशोधनों की निगरानी कर सकता है, मैं देख सकता हूं कि मेरी एक्सएमएल फाइलों में क्या हो रहा है।

"चालाक" मजाक के लिए खेद है लेकिन यह मेरे लिए काम करता है।

शांति

+0

+1 आप पहले जवाब देते हैं :) मैं [ConTEXT] (http://www.contexteditor.org/) का भी उपयोग करता हूं क्योंकि यह मुफ्त और मैत्रीपूर्ण है, लेकिन फ़ाइल डेल्फी आईडीई में भी खोली जा सकती है। – ThinkJet

2

मेरे दो सेंट:

आप अभिव्यक्ति list_instance_variable.SaveToFile('temp_file_name.txt') मूल्यांकन कर सकते हैं और फिर किसी भी संपादक में फ़ाइल की सामग्री की जांच।

ऐसा करने के लिए आपको कोड में कहीं भी इस फ़ंक्शन का उपयोग करना होगा और ऑप्टिमाइज़ेशन (कम से कम डेल्फी 7 में) बंद करना होगा, अन्यथा लिंकर द्वारा SaveToFile को ऑब्जेक्ट कोड हटा दिया जाएगा।

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

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