![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проверка на наличие элемента в ListBox [D7, XP]
AlexanderMS © (2006-04-24 19:24:00)Помогите, пожалуйста! Можно ли проверить наличие элемента в ListBox? В списке - около 7 тысяч элементов, и было бы нерационально перебирать их все. Список неупорядочен. Может, существует какая-нибудь функция?
AlexanderMS (2006-04-25 19:01:00) [1]Большое спасибо
KilkennyCat (2006-04-25 11:14:00) [2]
> [3] EvS © (24.04.06 19:45)
> Свойство Items имеет тип TStrings
> Класс TStrings имеет метод IndexOf
function TStrings.IndexOf(const S: string): Integer;
begin
for Result := 0 to GetCount - 1 do
if CompareStrings(Get(Result), S) = 0 then Exit;
Result := -1;
end;
Гаврила (2006-04-24 20:06:00) [3]Если у тебя поиск с помощью "indexOf" занимает, на твой взгляд, неприемлимое время ,и если список дейстувительно должен быть неупорядоченный, то советую держать второй невидимый список - сортированный, и наличие проверять в нем, содержимое дублировать.
Неплохой класс для этого - THashedStringList
EvS (2006-04-24 19:45:00) [4]Свойство Items имеет тип TStrings
Класс TStrings имеет метод IndexOf
AlexanderMS (2006-04-24 19:35:00) [5]Мне нельзя допустить наличие двух и более одинаковых элементов в списке после переименования одного из элементов. А делать это придётся часто - такая уж программа! Есть какой-нибудь способ?
KilkennyCat (2006-04-24 19:28:00) [6]неупорядочный список 0- только тупым перебором. Если упорядочить - то будет намного проще....