द्वारा Tstringlist को सॉर्ट करें मेरे पास फाइलों की एक श्रृंखला है जिसमें विभिन्न फ़ाइल पथ और फ़ाइल नाम हैं, सभी फ़ाइल नामों का एक ही एक्सटेंशन है लेकिन निर्देशिका नाम या पथ सभी अलग हैं और फ़ाइलों को लोड करने के बारे में सेट हैं Tstringlist और मैं उन्हें फ़ाइल नाम में क्रमबद्ध करने की कोशिश कर रहा हूं भले ही उनके पास पथ भी हों।डेल्फी XE2 फ़ाइल नाम
यहाँ TStringList में तार का एक उदाहरण है: -
c:\directory 1\AboutUs.lnk
c:\directory something\AAHelp.lnk
c:\directory anything\AAATalk.lnk
जब स्ट्रिंग मैं अंत चाहते हैं के फ़ाइल नाम भाग के अनुसार क्रमबद्ध।
c:\directory anything\AAATalk.lnk
c:\directory something\AAHelp.lnk
c:\directory 1\AboutUs.lnk
दूसरे शब्दों में मैं स्ट्रिंग के फ़ाइल नाम से पथ के साथ स्ट्रिंग को सॉर्ट करने में सक्षम होना चाहता हूं।
किसी भी मदद की सराहना की जाएगी!
यह दृष्टिकोण काम करेगा लेकिन यह काफी खराब प्रदर्शन हो सकता था। क्यूं कर? क्योंकि इस दृष्टिकोण में आप प्रत्येक तुलना के लिए 'ExtractFileName' को दो बार कॉल कर रहे हैं। अब कितनी तुलना की जरूरत है काफी हद तक निर्भर है जिस पर सॉर्टिंग एल्गोरिदम का उपयोग किया जाता है। तो मैं किसी भी सॉर्टिंग करने से पहले डेटा (फ़ाइल नाम निकालने) की तैयारी करने की सिफारिश करता हूं। यह प्रक्रिया को काफी तेज़ी से बढ़ा सकता है क्योंकि आपको प्रत्येक सूची आइटम के लिए केवल एक बार 'एक्स्ट्रेक्टफाइलनाम' कॉल करने की आवश्यकता होगी। – SilverWarior
या शायद आपके डेटा को तैयार करने के लिए एक बेहतर तरीका होगा ताकि यह तारों की जोड़ी के रूप में संग्रहीत किया जा सके जहां एक स्ट्रिंग फ़ाइल पथ का प्रतिनिधित्व करती है और दूसरा फ़ाइल नाम का प्रतिनिधित्व करता है। यह आपको तथाकथित 'बहु-पैरामीटर' सॉर्टिंग को लागू करने की अनुमति देगा जहां आप प्रारंभ में फ़ाइल नामों के आधार पर अपना डेटा सॉर्ट करेंगे और जब आपके पास एक ही नाम के साथ कई फाइलें होंगी तो आप उन्हें अपने पथ से आगे क्रमबद्ध करेंगे। – SilverWarior
@ सिल्वरवायर, मैं अनुकूलन के बारे में आपकी बात समझता हूं। आप अपने विचार को लागू करने का उत्तर पोस्ट कर सकते हैं और मुझे स्वीकार्य उत्तर बदलने का सुझाव देने में खुशी होगी। – karliwson