2012-01-20 12 views
18

मेरे पास एक TXT फ़ाइल है जिसमें टेक्स्ट की लगभग 10,000 पंक्तियां हैं। मैं इन लाइनों को एक टीएममो में प्रदर्शित करना चाहता हूं। लेकिन मैं उस प्रोग्राम को उस TXT फ़ाइल को वितरित नहीं करना चाहता हूं। मैं इसे अपने EXE फ़ाइल में stringtable {} का उपयोग करके संसाधन WITHIUT के रूप में एकीकृत कैसे कर सकता हूं क्योंकि इसके लिए प्रत्येक पंक्ति के लिए पहचानकर्ता की आवश्यकता होती है (इसलिए मुझे 10000 पहचानकर्ता जोड़ना होगा)।मैं अपनी EXE फ़ाइल में एक TXT फ़ाइल को संसाधन कैसे जोड़ूं?

_

मैं डेल्फी XE

+0

स्ट्रिंगटेबल तथ्य में एक संपूर्ण पाठ रख सकता है। – OnTheFly

+0

@ user539 ... कृपया एक उदाहरण प्रदान करें – Ampere

उत्तर

31

मैं आमतौर पर संसाधनों का इस तरह के लिए एक RC फ़ाइल (जो मूल रूप से एक पाठ फ़ाइल है) बनाते हैं, तो जैसे

MyText RCDATA ..\resources\filename.txt 
प्रत्येक के लिए

लाइन जोड़ने के लिए आरसी फाइल में फ़ाइल/संसाधन। यदि आरसी फ़ाइल परियोजना का हिस्सा है तो इसे संकलित किया जाएगा (res तक) और exe में जुड़ा हुआ है। संसाधन मैं आमतौर पर TResourceStream का उपयोग का उपयोग करने के लिए, यानी

var ResStream: TResourceStream; 
ResStream := TResourceStream.Create(hInstance, 'MyText', RT_RCDATA); 

BTW अगर आर सी फ़ाइल परियोजना के लिए स्वचालित रूप से शामिल नहीं किया गया है जब आप IDE में यह बनाया तो जैसे

{$R 'myExtraRes.res' 'myExtraRes.RC'} 
में

पंक्ति जोड़ें प्रोजेक्ट फ़ाइल, uses सूची के ठीक बाद।

+2

ध्यान दें कि आधुनिक डेल्फी संस्करणों में अब आईडीई में एक एकीकृत संसाधन प्रबंधक है, इसलिए आपको अब .rc फ़ाइलों का उपयोग करने की आवश्यकता नहीं है। –

+1

क्या आप उत्तर दे सकते हैं कि यह .rc फ़ाइलों के बिना इसे कैसे करें? –

+0

रेमी का जवाब एक तरफ देखें। ऐसे कुछ घटक भी हैं जो उस नौकरी के लिए डिज़ाइन किए गए हैं, जो डेटा को डीएफएम में सहेजते हैं ... लेकिन आरसी फाइल का उपयोग करने में समस्या क्या है? – ain

4

चूंकि आप TMemo में टेक्स्ट प्रदर्शित करना चाहते हैं, तो आप डिज़ाइन-टाइम पर टेक्स्ट को सीधे TMemo.Lines संपत्ति संपादक में कॉपी/पेस्ट कर सकते हैं। पाठ को संकलित समय पर फॉर्म/फ़्रेम के डीएफएम संसाधन के स्वामित्व में शामिल किया जाएगा और आपके लिए रन-टाइम पर स्वचालित रूप से TMemo में लोड किया जाएगा।

+1

मुझे पता है, लेकिन यह वही नहीं है जो मैं चाहता था। टीएममो चीज केवल एक उदाहरण के रूप में था (और एक परीक्षण है कि संसाधन स्ट्रिंग सही ढंग से संग्रहीत है)। – Ampere