Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.02;
Скачать: CL | DM;

Вниз

Недокументированая возможность TStringList.Find   Найти похожие ветки 

 
Dmitry S ©   (2008-09-06 21:31) [0]

К примеру, есть сортированный список

a
b
c
d.a
d.b
d.c
e
f

Необходимо найти первую строку, которая начинается на "d.".
StringList.Find("d.", Index), естественно, возвращает False, но в Index возвращает как раз ту, первую строку: "d.a", точнее ее номер.

Безопасно ли будет использовать данную возможность?


 
Servy ©   (2008-09-06 22:10) [1]

> К примеру, есть сортированный список


К примеру, есть хелп :)

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". Правда возможность эта хорошо документирована :).


 
Юрий Зотов ©   (2008-09-06 22:31) [2]

TStringList.Find не ищет строку которая начинается на что-то. Этот метод ищет строку, которая равна чему-то.

В Вашем списке строки "d." нет, поэтому метод ее не находит и возвращает False. А переменная Index принимает значение, которое имела бы строка "d.", если бы она была в списке.


 
Dmitry S ©   (2008-09-06 22:33) [3]

Честно, не разобрал смысла в

> should go is returned

.

Спасибо! :)


 
Dmitry S ©   (2008-09-06 22:35) [4]


> Юрий Зотов ©   (06.09.08 22:31) [2]

Поставленная задача ведь решается?


 
{RASkov} ©   (2008-09-06 23:18) [5]

> Необходимо найти первую строку, которая начинается на "d.".

В таком списке:
a
b
c
e
f

> Поставленная задача ведь решается?

Сам как думаешь?


 
Германн ©   (2008-09-07 00:18) [6]


> Честно, не разобрал смысла в
>
> > should go is returned
>

Читать надо с чувством, с толком, с расстановкой. А не выдергивать отдельные слова из строки.


 
McSimm ©   (2008-09-07 01:12) [7]

The index
where S should go

is returned
in the Index parameter.


 
turbouser ©   (2008-09-07 01:22) [8]

Одно интересно - зачем 2 метода поиска?
Достаточно было бы указать IndexOf("bla",IsSorted,[caseInSensitive,PartialSearch]) например.


 
Тын-Дын ©   (2008-09-07 02:03) [9]


> Достаточно было бы указать IndexOf("bla",IsSorted,[caseInSensitive,
> PartialSearch]) например.


Где ты такой метод нашел?


 
Германн ©   (2008-09-07 02:22) [10]


> McSimm ©   (07.09.08 01:12) [7]

Англичане не любят запятые. Это их беда. :)
Но вторую часть предложения не надо дробить на две части. Она и так нормально читается:
is returned in the Index parameter.

P.S. Но возможно ты раздробил предложение на части по другому принципу? Но тогда следовало бы where поставить в первой строке.


 
McSimm ©   (2008-09-07 02:30) [11]


> Германн ©   (07.09.08 02:22) [10]

иногда предлоги несут решающий смысл находясь после связанного с ними слова, поэтому привык всегда отрывать (мысленно, разумеется)


 
turbouser ©   (2008-09-07 02:36) [12]


> Тын-Дын ©   (07.09.08 02:03) [9]

Это в качестве альтернативы. Т.е. как могли бы сделать.


 
Германн ©   (2008-09-07 02:40) [13]


> McSimm ©   (07.09.08 02:30) [11]

Проехали.


 
Германн ©   (2008-09-07 02:56) [14]

Джо, который неуловимый. Ты где?


> The index where S should go is returned in the Index parameter.

Вот эту строку из аглицкого хелпа я могу легко перевести на русский.

Индекс строки, где должна была бы быть расположена строка S, возвращается в параметре Index.


 
Тын-Дын ©   (2008-09-07 12:12) [15]


> turbouser ©   (07.09.08 02:36) [12]
> > Тын-Дын ©   (07.09.08 02:03) [9]Это в качестве альтернативы.
>  Т.е. как могли бы сделать.


Всё для удобства -)



Страницы: 1 вся ветка

Текущий архив: 2008.11.02;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.016 c
13-1122032552
jenbond
2005-07-22 15:42
2008.11.02
Работа с переменной


4-1197879873
андр
2007-12-17 11:24
2008.11.02
USB Flash


15-1221227421
Vlad Oshin
2008-09-12 17:50
2008.11.02
Прикольно..


1-1201414165
snake-as
2008-01-27 09:09
2008.11.02
Помогите разобраться с ADO


1-1197305735
Asker
2007-12-10 19:55
2008.11.02
Копирование экрана