2012-09-08 14 views
5

से एक स्ट्रिंगलिस्ट पढ़ना मैं डेल्फी एक्सई स्टार्टर का उपयोग कर रहा हूं। मैंने एक CCs.RC फ़ाइल बनाई है और उस फ़ाइल को प्रोजेक्ट में जोड़ा है। मेरी CCs.RC फ़ाइल में एक ठेठ लाइन इस तरह दिखता है:संसाधन फ़ाइल

Danish1cc Text Danish1.cc 

सीधे एक कार्यान्वयन लाइन के बाद मैं

{$R CCs} 

जब मैं एक मौजूदा stringlist में इस फाइल को पढ़ने की कोशिश जोड़ दिया है, मैं एक [EResNotFound][1] त्रुटि संदेश। यहाँ कोड मैं कोशिश करते हैं और फ़ाइल को पढ़ने के लिए इस्तेमाल किया गया है:

procedure LoadStringListFromResource(const ResName: string;SL : TStringList); 
var 
    RS: TResourceStream; 
begin 
    RS := TResourceStream.Create(HInstance, ResName, RT_RCDATA); 
    try 
    SL.LoadFromStream(RS); 
    finally 
    RS.Free; 
    end; 
end; 
/// 
LoadStringListFromResource('Danish1cc',MySL) 

मेरा लक्ष्य मेरा EXE में फ़ाइल एम्बेड करने के लिए और निश्चित रूप से यह :) आप किसी भी मदद के लिए धन्यवाद पढ़ने में सक्षम हो सकता है।

उत्तर

9

आपके संसाधन का प्रकार मेल नहीं खाता है। आपकी * आरसी फ़ाइल में आप TEXT का उपयोग करते हैं जबकि आपके कोड में आप RCDATA का उपयोग करते हैं। आप या तो

Danish1cc RCDATA Danish1.cc 

करने के लिए अपने * .RC फ़ाइल में परिवर्तन करना होगा या फिर

RS := TResourceStream.Create(HInstance, ResName, RT_RCDATA); 

को
RS := TResourceStream.Create(HInstance, ResName, 'Text'); 
+3

हाँ, और यहां प्रासंगिक दस्तावेज है: [संसाधन परिभाषा वक्तव्य] (http://msdn.microsoft.com/en-us/library/windows/ डेस्कटॉप/aa381043% 28v = vs.85% 29.aspx) –

0

मुझे लगता है कि समस्या यह लाइन के साथ है आप में परिवर्तन करना होगा - {$R CCs}

आपने संसाधन फ़ाइल संकलित की है, क्या वह फ़ाइल नहीं है जिसे CCs.res कहा जाता है?

यदि ऐसा है तो अपने कोड में है कि रेखा होना चाहिए {$R CCs.res}

+2

उस स्थिति में उसे एक कंपाइलर त्रुटि संदेश मिलेगा, लेकिन उसे रनटाइम पर एक EResNotFound अपवाद प्राप्त होता है। –

+0

आप सही हैं, क्षमा चाहते हैं –

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