Embarcadero Delphi
TStringList वर्ग
खोज…
परिचय
TStringList VCL के TStrings वर्ग का वंशज है। TStringList का उपयोग स्ट्रिंग्स की सूची के भंडारण और हेरफेर के लिए किया जा सकता है। हालांकि मूल रूप से स्ट्रिंग्स के लिए इरादा है, इस वर्ग का उपयोग करके किसी भी प्रकार की वस्तुओं को भी हेरफेर किया जा सकता है।
जब स्ट्रिंग्स की सूची को बनाए रखने के लिए उद्देश्य वहाँ VCL में TStringList का व्यापक रूप से उपयोग किया जाता है। TringringList तरीकों के एक समृद्ध सेट का समर्थन करता है जो उच्च स्तर के अनुकूलन और हेरफेर में आसानी प्रदान करता है।
निम्न उदाहरण, TStringList ऑब्जेक्ट को स्ट्रिंग्स, सॉर्ट करना, पुनर्प्राप्त करना और मुक्त करना, निर्माण को दर्शाता है।
procedure StringListDemo;
var
MyStringList: TStringList;
i: Integer;
Begin
//Create the object
MyStringList := TStringList.Create();
try
//Add items
MyStringList.Add('Zebra');
MyStringList.Add('Elephant');
MyStringList.Add('Tiger');
//Sort in the ascending order
MyStringList.Sort;
//Output
for i:=0 to MyStringList.Count - 1 do
WriteLn(MyStringList[i]);
finally
//Destroy the object
MyStringList.Free;
end;
end;
TStringList में स्ट्रिंग हेरफेर, सॉर्टिंग, इंडेक्सिंग, की-वैल्यू पेयरिंग और सीमांकक पृथक्करण सहित कई उपयोगकर्ता मामले हैं।
की-वैल्यू पेयरिंग
की-वैल्यू जोड़े को स्टोर करने के लिए आप एक TStringList का उपयोग कर सकते हैं। उदाहरण के लिए, यदि आप सेटिंग्स को स्टोर करना चाहते हैं तो यह उपयोगी हो सकता है। सेटिंग्स में एक कुंजी (सेटिंग की पहचानकर्ता) और मान होता है। प्रत्येक की-वैल्यू जोड़ी कीरिंग में एक पंक्ति में की = वैल्यू फॉर्मेट में स्टोर की जाती है।
procedure Demo(const FileName: string = '');
var
SL: TStringList;
i: Integer;
begin
SL:= TStringList.Create;
try
//Adding a Key-Value pair can be done this way
SL.Values['FirstName']:= 'John'; //Key is 'FirstName', Value is 'John'
SL.Values['LastName']:= 'Doe'; //Key is 'LastName', Value is 'Doe'
//or this way
SL.Add('City=Berlin'); //Key ist 'City', Value is 'Berlin'
//you can get the key of a given Index
IF SL.Names[0] = 'FirstName' THEN
begin
//and change the key at an index
SL.Names[0]:= '1stName'; //Key is now "1stName", Value remains "John"
end;
//you can get the value of a key
s:= SL.Values['City']; //s now is set to 'Berlin'
//and overwrite a value
SL.Values['City']:= 'New York';
//if desired, it can be saved to an file
IF (FileName <> '') THEN
begin
SL.SaveToFile(FileName);
end;
finally
SL.Free;
end;
end;
इस उदाहरण में, स्ट्रिंगर के नष्ट होने से पहले निम्न सामग्री है:
1stName=John
LastName=Doe
City=New York
प्रदर्शन पर ध्यान दें
हुड के तहत TStringList
सभी मदों के माध्यम से सीधे लूपिंग द्वारा महत्वपूर्ण खोज करता है, हर आइटम के अंदर विभाजक की खोज करता है और दिए गए कुंजी के खिलाफ नाम भाग की तुलना करता है। यह कहने की ज़रूरत नहीं है कि यह प्रदर्शन पर बहुत अधिक प्रभाव डालता है, इसलिए इस तंत्र का उपयोग केवल गैर-महत्वपूर्ण, शायद ही दोहराया स्थानों में किया जाना चाहिए। ऐसे मामलों में जहां प्रदर्शन मामलों, एक का उपयोग करना चाहिए TDictionary<TKey,TValue>
से System.Generics.Collections
कि औजार हैश तालिका खोज या हल कर में कुंजी रखने के लिए TStringList
के रूप में जमा मूल्यों के साथ Object
इस प्रकार द्विआधारी खोज एल्गोरिथ्म का उपयोग -s।