Форум: "Прочее";
Текущий архив: 2008.11.02;
Скачать: [xml.tar.bz2];
ВнизНедокументированая возможность 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c