School Ghost_mod

В този урок ще разгледаме нов тип данни TStringList, който съдържа списък от низове от тип string.

С други думи, TStringList е масив от низове, който има редица различни възможности, които ви позволяват да извършвате различни операции върху низове. TStringList не е просто променлива, която обсъждахме в предишните уроци (цяло число, низ и т.н.). Променлива от тип TStringList е обект, който е снабден с определени функции, процедури и параметри директно в себе си. Всъщност всичко изглежда като обикновен компонент (има "вградени" функции, процедури, параметри) и ако бягате малко напред, тогава компонентите са едни и същи променливи (точно като TStringList и дори цяло число), въпреки че би било много по-грамотно да ги наричаме точно обекти. Но докато все още не сме напълно наясно със структурата на обектите в Delphi, няма да изпреварвам повече. Нека само да кажа, че не трябва да се страхувате от това и засега приемете всичко такова, каквото е. В бъдеще цели статии ще бъдат посветени на тази тема. Нека да преминем към изучаването на типа TStringList. В секцията var се декларира както следва, обаче, като обикновените променливи:

Все още обаче не можем да използваме цялата функционалност на типа TStringList. Това е друга особеност на тези "сложни" типове. Не забравяйте, че преди да работите с обекти от тези типове (т.е. преди да работите с променливата s (в нашия случай)), първо трябва да ги създадете. В секцията Var ние само декларираме променливи, ние не ги създаваме. Но да създадете променлива (обект) означава да й присвоите някаква начална стойност и да я подготвите за работа. Ако създаването на променлива от тип integer се извършва чрез просто присвояване на число към нея, тогава създаването на обект (променлива) от типTStringList ще изглежда така:

s := TStringList. създавам;

"TStringList.Create" е конструктор от тип TStringList. Грубо казано, това е, което трябва да бъде присвоено като начална стойност на нов екземпляр от типа TStringList. И сега всички възможности на TStringList вече са налични. Искате ли да знаете какво ще се случи, ако не създадете TStringList и като цяло всеки друг сложен обект, съдържащ параметри, процедури, функции? Веднага щом се опитате да получите достъп до което и да е свойство, параметър, процедура или функция на този обект, ще се появи грешка Access Violation. Така че не забравяйте да създавате обекти, преди да работите с тях.

Методи на обекти ще наричаме всички процедури и функции на разглеждания тип обекти. TStringList ви позволява да съхранявате низове както сортирани, така и несортирани. Въпреки че сортирането на низове в TStringList не е популярна функция, все пак си струва да се обмисли. По подразбиране сортирането в обект TStringList е деактивирано. Можете да го активирате по следния начин:

Както можете да видите, обект от тип TStringList има вложени параметри и методи и можете да работите с последните по същия начин, както с параметри и методи за обикновени компоненти. Всъщност няма разлика в устройството между TButton (бутон) и TStringList. Обединява ги едно - че бутонът, че TStringList са обикновени обекти, просто тези обекти са инстанции от различни типове (класове). Такива "сложни" типове като TButton или TStringList е по-правилно да се наричат ​​класове. Тези. типове обекти, които имат вложени методи и параметри, ще се наричат ​​класове. Нека продължим изучаването на класа TStringList. За да добавите низ към TStringList, има метод Add. Като единственпараметър трябва да предаде променлива от тип низ:

Това създава нов ред, който се поставя непосредствено след предишните (ако сортирането е изключено).

Както вече казах, TStringList е масив от низове. Наистина, всеки ред на TStringList може да бъде достъпен чрез индекс (тези индекси се изчисляват от нула):

с . Add( 'Това е тест' );

с . Add ('Това е втори ред');

покажи съобщение(и[0]);

покажи съобщение(а[1]);

s [ 0 ] : = s [ 0 ] + '123' ;

Нямате достъп до индекс, който не съществува, дори ако искате да присвоите стойност на индекса, който не съществува.

Можете да използвате метода Delete, за да изтриете единичен ред на определен индекс. Трябва да предаде индекса на реда, който трябва да бъде изтрит, като единствен параметър.

Методът Clear ви позволява да премахнете напълно всички редове. Няма параметри.

Методът Count връща броя низове в обект от тип TStringList. Освен това не е необходимо да предава параметри. За да разберете индекса на последния ред в TStringList, можете да използвате метода count:

Методът Find ви позволява да намерите индекса на посочения низ S. Той връща True, ако такъв низ съществува, или False, ако такъв низ не съществува.

Методът IndexOf е подобен на метода Find и връща индекса на търсения низ или -1, ако такъв низ не съществува.

Методът Insert вмъква конкретен ред на конкретен индекс. Изглежда така:

Текстовият метод няма параметри. Връща всички редове в тяхната цялост - като един ред. В този случай преводите между редовете ще се извършват от знаци с код #13, които се показват като прекъсване на ред.

Методът LoadFromFile позволявазаредете съдържанието на TStringList от файл. В този случай всеки ред ще се зарежда отделно. Преди да качите файл в TStringList, препоръчително е да разберете дали изобщо съществува. Това се прави с помощта на функцията FileExists, която връща true, ако файлът съществува.

ако FileExists ( 'C:\textfile.txt' ) тогава

с . LoadFromFile ('C:\textfile.txt') ;

За да запазите съдържанието на TStringList във файл, се използва функцията SaveToFile, на която трябва да подадете пътя за запис на файла. Ако такъв файл вече съществува, той автоматично ще бъде презаписан.

И накрая, ще ви разкажа за безплатния метод. Този метод се използва за изтриване на самия обект TStringList. С това изтриване RAM паметта се изчиства от съдържанието на обекта, който се изтрива. След такова изтриване вече няма да можем да работим със самия обект - само след като го създадем отново.