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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> string grid - найти дубликаты, string grid - найти дубликаты 
:(
    Опции темы
Axotnik
Дата 24.4.2010, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток! Вопрос: как можно найти в string grid дубликаты и удалить их. Пример есть грид:
 1 | a
 2 | b
 1 | a
 2 | c
 1 | a
 4 | d 
В итоге надо получить:
 1 | a
 2 | b
 2 | c
 4 | d
Если кто может помогите кодом. В программировании полный ноль. Заранее благодарю.
PM MAIL   Вверх
DarkProg
Дата 24.4.2010, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


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

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



Цитата(Axotnik @  24.4.2010,  15:12 Найти цитируемый пост)
Если кто может помогите кодом. В программировании полный ноль. 

Увы вы ошиблись разделом, вам в центр помощи.
P.S. попользуйтесь поиском кажись где-то есть уже готорый пример ;)


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
Axotnik
Дата 24.4.2010, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Искал. не могу не чего не найти.
PM MAIL   Вверх
Данкинг
Дата 24.4.2010, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Думаю, только проходом по гриду и поиском дублей, больше никак.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Axotnik
Дата 24.4.2010, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



так я так и делаю
Код

var k,l,r,i,j:integer;
begin
with SG do
    begin
    for r := 1 to ColCount - 1 do
      begin
      for k := r to ColCount - 1 do
        begin
           if ((Cells[0,k]=Cells[0,k-1]) and (Cells[1,k]=Cells[1,k-1]) then
              begin
                        Cells[0,k]:='';
                        Cells[1,k]:='';             
              end;
        end;
      end;
    end;


Это сообщение отредактировал(а) Axotnik - 24.4.2010, 20:09
PM MAIL   Вверх
DarkProg
Дата 24.4.2010, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


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

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



Странный у вас код, однако, вам ведь нужно первую строку стравнить со всеми остальными и все повторы удалить, а потом вторую сравнить с тем что осталось и так далее, а что делает ваш код я что-то не понимаю.


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
Staruha
Дата 27.4.2010, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

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



Но все таки логика в этом коде есть.Маленько поправить.Правда будут дыры.Наверно надо в массив загонять

Код

var k,l,r,i,j:integer;
begin
      for r := 1 to stringgrid1.rowCount - 1 do
      begin
      for k := r+1 to stringgrid1.rowCount - 1 do
        begin
           if ((Cells[0,r]=Cells[0,k]) and (Cells[1,r]=Cells[1,k]) then
              begin
                        Cells[0,k]:='';
                        Cells[1,k]:='';             
              end;
        end;
      end;
    end;

Под рукой дельфи нет проверить не могу


--------------------
Возмездие настигнет
PM MAIL   Вверх
demoniqus
Дата 29.4.2010, 10:40 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



есть способ лучше - indexOf

Код

StringGrid1.Cols[0].IndexOf('точное значение')


Эта команда ищет только точные совпадения. Вхождения игнорируются. Т.е., если в таблице есть значение к примеру "аааа", а ты попытаешься найти "ааа", то ничего не выйдет. На регистр не проверял, но скорее всего регистр также имеет значение. Работает довольно быстро. Единственная небольшая загвоздка, что надо указывать лишь один столбец, а не сразу несколько... но с другой стороны в таблице ведь однотипные данные и должны располагаться в одном столбце...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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