-
К примеру, есть сортированный список
a
b
c
d.a
d.b
d.c
e
f
Необходимо найти первую строку, которая начинается на "d.". StringList.Find('d.', Index), естественно, возвращает False, но в Index возвращает как раз ту, первую строку: "d.a", точнее ее номер. Безопасно ли будет использовать данную возможность?
-
> К примеру, есть сортированный список
К примеру, есть хелп :)
Use Find to obtain the index in a sorted list where the string S should be added. If the string S, or a string that differs from S only in case when CaseSensitive is false, already exists in the list, Find returns true. If the list does not contain a string that matches S, Find returns false. The index where S should go is returned in the Index parameter. The value of Index is zero-based, where the first string has the index 0, the second string has the index 1, and so on.
Note: Only use Find with sorted lists. For unsorted lists, use the IndexOf method instead.
Прочитав его, можно заключить, что Find следует использовать для сортированных списков чтобы определить в какой позиции должна находиться строка S (при этом возвращается True, если она уже есть в списке). Так что, да, Find в приведенном примере всегда будет возвращать нужный индекс, однако если строк, начинающихся на "d." нет, то будет получен индекс строки "e". Правда возможность эта хорошо документирована :).
-
TStringList.Find не ищет строку которая начинается на что-то. Этот метод ищет строку, которая равна чему-то.
В Вашем списке строки 'd.' нет, поэтому метод ее не находит и возвращает False. А переменная Index принимает значение, которое имела бы строка 'd.', если бы она была в списке.
-
Честно, не разобрал смысла в
> should go is returned
.
Спасибо! :)
-
> Юрий Зотов © (06.09.08 22:31) [2]
Поставленная задача ведь решается?
-
> Необходимо найти первую строку, которая начинается на "d.".
В таком списке: a b c e f
> Поставленная задача ведь решается?
Сам как думаешь?
-
> Честно, не разобрал смысла в > > > should go is returned >
Читать надо с чувством, с толком, с расстановкой. А не выдергивать отдельные слова из строки.
-
The index where S should go
is returned in the Index parameter.
-
Одно интересно - зачем 2 метода поиска? Достаточно было бы указать IndexOf('bla',IsSorted,[caseInSensitive,PartialSearch]) например.
|