Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];

Вниз

Help me! Please!   Найти похожие ветки 

 
Irish Boy   (2001-12-28 13:42) [0]

Как программно проверить есть ли одинаковые строки в Listboxe или нету, когда заранее количество строк неизвестно?


 
gek   (2001-12-28 13:44) [1]

проверять при каждом добавлении в список


 
Miwa   (2001-12-28 14:13) [2]


for i:=0 to ListBox1.ItemIndex
for j:=i to ListBox1.ItemIndex
if ListBox1.Items[i]=ListBox1.Items[j] then ...

По-моему так...


 
Voron   (2001-12-28 14:19) [3]

А если список уже сформирован, и надо проверить в какой-то конкретный момент то:
цикл по всем строкам, в нем
еще цикл по всем строкам, в нем
сравниваем строки, если они не одна и таже.



 
Voron   (2001-12-28 14:23) [4]

Пока читал и писал свой ответ Miwa © и Polevi © вперед успели :)
2Miwa © ListBox1.Items.Count!!!


 
Romkin   (2001-12-28 14:27) [5]

Items.IndexOf("AAA") > 0 - уже есть, это при добавлении,
а если уже есть - перекинуть Items в StringList (StringList1.Assign, например), а там есть sort & Duplicates


 
panov   (2001-12-28 14:35) [6]

А вот и пример:-)
-----------------
var
tL: TStringList;
begin
tL := TStringList.Create;
try
tL.Sort;
tL.Duplicates := dupError;
try
tL.Assign(ListBox.Items);
except
ShowMessage("Одинаковые записи!");
end;
finally
tL.Free;
end;
end;


 
Irish Boy   (2001-12-28 14:56) [7]

А ГДЕ ВЗЯТЬ ЭТОТ StringList?


 
Builder   (2001-12-28 15:09) [8]

Стандартно это делается так - сортируется список строк Sorted = true), а потом проверяется, не совпадают ли две соседние строки.

Недокументированная фича - получится отсортированный список :)


 
panov   (2001-12-28 15:24) [9]

Sorts the strings in the list in ascending order.

procedure Sort; virtual;

Description

Call Sort to sort the strings in a list that has the Sorted property set to False. String lists with the Sorted property set to True are automatically sorted.

Note: Sort uses AnsiCompareStr to sort the strings. This sort order takes into account the locale of the system on which the application is running. To provide your own comparison operator instead, use the CustomSort method.


 
MBo   (2001-12-28 18:34) [10]

1) самое простое
s - строка для добавления
if Listbox1.IndexOf(s)<0 then
ListBox1.Add(s);

2)>А ГДЕ ВЗЯТЬ ЭТОТ StringList
если устроит следующая ситуация:
элементы списка добавляются в буферный список (TStringList- наследник TStrings, ListBox.Items тоже),который способен при установке свойства sorted в true обрабатывать повторение элементов, в данном случае просто не внося их в список.
Затем копировать в ListBox (будет отсортирован).
Такой способ иногда полезен.

var sl:tstringlist;
procedure TForm1.FormCreate(Sender: TObject);
begin
sl:=tstringlist.create;
sl.Sorted:=true;
sl.Duplicates:=dupIgnore;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
sl.Add(edit1.text);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
listbox1.items.assign(sl);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
sl.free;
end;






 
MBo   (2001-12-28 19:25) [11]

Sorry в 1)
в обеих строках не просто ListBox1. , а
ListBox1.Items.


 
RaZEr   (2001-12-29 06:51) [12]

Кошмар какой , такую бадягу развести из-за сравнения листбоксов ! Итак :

Листбоксы Lbox1 , LBox2 .
LBox3 - листбокс в котором одинаковые строки

LBox3 := TListBox.Create;

FOR I:=0 to LBox1.Items.Count-1 DO
FOR J:=0 to LBox2.Items.Count-1 DO
IF LBox1.Items[I] = LBox2.Items[J] THEN
LBox3.Items.Add(LBox1.Items[I]);

В итоге LBox3.Items - это и есть вс одинаковые строки .



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

Форум: "Основная";
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
6-52630
z0ne
2001-10-19 02:18
2002.01.17
server sharedirname --->>> d: dir subdirwhatshared


1-52565
Yuraz
2001-12-28 14:00
2002.01.17
Хотелось бы сделать ProgressBar в модальном окне для своей программы, не знаю как...


4-52689
Вадим
2001-11-16 17:31
2002.01.17
Имя компьютера


3-52463
Wladimir
2001-12-14 07:50
2002.01.17
Множественное удаление записей в таблице


1-52540
vbazik
2001-12-23 16:44
2002.01.17
Графика, вставка с масштабированием





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский