Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2008, 22:47   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Радость Повторы в ListView

Как в ListView удалять посторяющиеся записи? например:
Daniel
Raw
Giorg
Giorg

И удалить строки где присутсвует #U
Shouldercannon вне форума Ответить с цитированием
Старый 04.08.2008, 00:09   #2
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Код:
  Temp:array of string;
implementation

{$R *.dfm}

Function Tform1.Inmas(s: string):boolean;
var i:integer;
begin
result:=false;
for I := 0 to length(temp)-1 do
begin
if temp[i]=s then
begin
  result:=true;
  break;
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
count:integer;
begin
count:=Listview1.Items.Count-1;
i:=0;
while i<=count do
begin
  if inMas(listview1.Items[i].caption) or (listview1.items[i].Caption='#U') then
  begin
    listview1.Items[i].Delete;
    dec(count);
    dec(i);
  end else
  begin
    setlength(temp,length(temp)+1);
    temp[Length(temp)-1]:=listview1.Items[i].Caption;
  end;
  inc(i);
end;

end;
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 21.10.2010, 13:52   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Почему при повторном помещении данных и повторной очистке от повторяющихся записей в ListView ничего нет?
Код:
function TForm1.InMas(s: string): Boolean;
var
  i: Integer;
begin
  result := False;

  for i := 0 to Length(Temp) - 1 do
    begin
      if Temp[i] = s then
        begin
          result := True;
          Break;
        end;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  txt, sCaption: string;
  Server: TListItem;
  i, count: integer;
begin
  ListView1.Clear;

  txt := '\q\0\w\0\e\0\r\0\t\0\q\0\w\0\e\0\r\0\t\0\';

  if txt[Length(txt)] <> '\' then txt := txt + '\';

  while Length(txt) > 0 do
    begin
      Server := ListView1.Items.Add;
      sCaption := '';

      if txt[1] = '\' then
        begin
          sCaption := '';
          Delete(txt, 1, 1);
        end;

      Server.Caption := sCaption + Copy(txt, 1, Pos('\', txt) - 1);
      Delete(txt, 1, Pos('\', txt));
      Server.SubItems.Add(Copy(txt, 1, Pos('\', txt) - 1));
      Delete(txt, 1, Pos('\', txt) - 1);

      if txt = '\' then Break;
    end;

  count := ListView1.Items.Count - 1;
  i := 0;

  while i <= count do
    begin
      if InMas(ListView1.Items[i].Caption) then
        begin
          ListView1.Items[i].Delete;
          dec(count);
          dec(i);
        end
        else
        begin
          SetLength(Temp, Length(Temp) + 1);
          Temp[Length(Temp) - 1] := ListView1.Items[i].Caption;
        end;
      inc(i);
    end;
end;

Последний раз редактировалось Shouldercannon; 21.10.2010 в 19:49.
Shouldercannon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удалить повторы FAiver Общие вопросы Delphi 5 21.10.2010 20:45
ListView aesoem Общие вопросы Delphi 4 05.07.2008 15:55
ListView Старовъръ Компоненты Delphi 8 02.07.2008 19:08
ListView Drain Общие вопросы Delphi 3 13.02.2008 16:10
ListView Garacio Компоненты Delphi 1 17.12.2006 15:30