Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1221032065
123-ий
2008-09-10 11:34
2008.11.02
Груб (загрузчик)


15-1221016514
Василий Жогарев
2008-09-10 07:15
2008.11.02
Программирование под Unix- подобные системы.


2-1222067106
Ivanov Ivan
2008-09-22 11:05
2008.11.02
Сравнить элементы


15-1220863452
Как - то так
2008-09-08 12:44
2008.11.02
Может кто объяснить?


2-1222372060
DFT
2008-09-25 23:47
2008.11.02
RandomRange





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский