Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Копии строк в ЛистБоксе... Как удалить одинаковые строки 
:(
    Опции темы
Kritik
Дата 7.3.2006, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 19.2.2006

Репутация: нет
Всего: нет



Всем привет!
Дам, девушек и девчёнок с праздником!!!

Люди такой вопрос проверить ЛистБокс на копии и выделить их или удалить???
Делаю цикл от нулевой строки до Коунт-1 в него подцикл от 1-ой строки до Коунт, при этом у меня выходят ошибки: лист аут оф бонд (и число)...

Если кто делал подобное подкиньте решение....

Пасиба.
PM MAIL   Вверх
Albinos_x
Дата 7.3.2006, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



Цитата(Kritik @ 7.3.2006, 08:59 Найти цитируемый пост)
1-ой строки до Коунт

строки Коунт не существует...т.к. отчисление от нуля...

http://forum.vingrad.ru/index.php?showtopi...amp;hl=combobox
http://forum.vingrad.ru/index.php?showtopi...amp;hl=combobox
http://forum.vingrad.ru/index.php?showtopi...amp;hl=combobox

это с combobox, то же и с ЛистБоксом


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Drovosek
Дата 10.3.2006, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 10.3.2006

Репутация: нет
Всего: нет



[/code]
Код

procedure TForm1.Button1Click(Sender: TObject);
var s,m: string;
i,k,y: integer;
f: textfile;
begin
//заменяем повторы на пустоту
for i:= 0 to listbox1.Items.Count-1 do
  begin
  s:=listbox1.Items.Strings[i];
  for k:= 0 to listbox1.Items.Count-1 do
    begin
    m:=listbox1.Items.Strings[k];
    if (i<>k) and (s=m) and (m<>'') then
      begin
      listbox1.Items.Delete(k);
      listbox1.Items.Add('');
      end;

    end;
  end;

//в папке, где сохранен проект создаем файл.txt

assignfile(f,'temp.txt');
rewrite(f);
for i:=0 to listbox1.Items.Count-1 do
  begin
  s:=listbox1.Items.Strings[i];
  if s<>'' then writeln(f,s);//записываем в него строки из listbox, кроме пустых
  end;

// добавляем строки из файла в listbox
listbox1.Items.Clear;
reset(f);
while not EOF(f) do
  begin
  readln(f,s);
  listbox1.Items.Add(s);
  end;
//получили listbox без пустых строк и повторов. файл.txt удаляем
reset(f);
rewrite(f);
closefile(f);
erase(f);

end;


end.

// ничего проще в голову не пришло



При этом порядок строк будет сохранен!



{Все гениальное просто и рационально} smile

Это сообщение отредактировал(а) Drovosek - 10.3.2006, 14:36
PM MAIL ICQ   Вверх
Демо
Дата 10.3.2006, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Kritik,
Так как у тебя уже есть TListBox, то, строк, как я понимаю, не очень много.
Если поорядок следования строк неважен, то для удаления дублей в этом случае просто воспользоваться дополнительным TStringList.
В нем использовать свойства Sorted и Duplicates.
Например:

Код

var
  L: TStringList;
  i: Integer;
begin
  L := TStringList.Create;
  L.Sorted := True;
  L.Duplicates := dupIgnore;
  try
    for i := 0 to ListBox.Items.Count-1 do
    begin
      L.Add(ListBox.Items[i]);
    end;
    ListBox1.Items.Assign(L);
  finally
    L.Free;
  end;


Немного подумав, при необходимости, можно и порядок строк восстановить.


--------------------
    
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0457 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.