|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Найти и удалить дубли строк |
|
C/C++ - Найти и удалить дубли строк
|
Новый участник Сообщения: 3 |
Профиль | Сайт | Отправить PM | Цитировать Добрый день!
Пишу небольшую программулину для работы, почти все функции реализовал, но осталась одна, которую не могу решить. Короче, выкладываю суть вопроса: Есть поле Memo1 в нем строки вида: смартфоны цены смартфоны недорогие смартфоны лучшие смартфоны купить хороший смартфон купить смартфон цена купить смартфон в спб купить смартфон в магазине купить смартфон в интернет магазине нужна функция, которая удалит строки с вхождением слов из других строк к примеру, есть две строки: смартфоны недорогие смартфоны должна остаться: недорогие смартфоны так как первая строка содержит текст, который есть в строке два при обработке строк должно получиться: источник: смартфоны цены смартфоны недорогие смартфоны лучшие смартфоны купить хороший смартфон купить смартфон цена купить смартфон в спб купить смартфон в магазине купить смартфон в интернет магазине Получили: недорогие смартфоны лучшие смартфоны купить хороший смартфон купить смартфон цена купить смартфон в спб купить смартфон в интернет магазине Вот что я написал (точнее подсказал Alexander Gamza): AnsiString SearchStr; for(int i=0; i<Memo1->Lines->Count; i++){ SearchStr = Memo1->Lines->Strings[i]; for(int j=i+1; j<Memo1->Lines->Count; j++) { if(Memo1->Lines->Strings[j].Pos(SearchStr)) Memo1->Lines->Delete(i); }//end for j }//end for i но функция работает не корректно(( помогите! |
|
Отправлено: 20:13, 25-10-2017 |
Необычный Сообщения: 4461
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 11:42, 27-10-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 3
|
Профиль | Сайт | Отправить PM | Цитировать спасибо конечно за ответ, но мне нужно одно решение)
Думаю много времени займет разбор документов) |
Отправлено: 23:51, 27-10-2017 | #3 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать KonVi_SEO@twitter, у вас в коде "каша". Цикл по Lines, а обращаетесь к Strings.
удалять надо по индексу вложенного цикла (и переписать условие), либо выходить из него после удаления. Сейчас внутренний цикл продолжает сравнивать со строкой, которой уже нет в массиве. |
Отправлено: 11:14, 28-10-2017 | #4 |
Новый участник Сообщения: 3
|
Профиль | Сайт | Отправить PM | Цитировать покажете как правильно?
Busla, Busla, покажете как правильно?) |
|
Отправлено: 20:12, 28-10-2017 | #5 |
Необычный Сообщения: 4461
|
Профиль | Сайт | Отправить PM | Цитировать KonVi_SEO@twitter, спрошу иначе.
Вы хотите разбираться в том, как это работает? Или вам нужно "коробочное решение" из разряда подал массив строк на вход, получил фильтрованный массив на выходе? Сколько у вас есть времени разбираться с данной задачей? Так ли необходимо использовать язык С++ или это может быть какой-либо иной? |
------- Отправлено: 18:54, 29-10-2017 | #6 |
Новый участник Сообщения: 21
|
Неправильно формулируете задачу. Если её решать буквально, то получится чушь.
1. раз два 2. два три Обе строи будут удалены, т.к. каждая удовлетворяет условию для удаления |
Отправлено: 12:21, 05-12-2017 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Дубли в настройке уведомлений | Gambetto | Microsoft Windows 10 | 5 | 19-10-2016 09:15 | |
CMD/BAT - [решено] Найти и удалить папку | clayton | Скриптовые языки администрирования Windows | 11 | 22-01-2013 04:21 | |
CMD/BAT - [решено] Удалить переносы строк | Anonymоus | Скриптовые языки администрирования Windows | 2 | 22-06-2012 05:27 | |
CMD/BAT - Удалить несколько строк из файла | GhostKU | Скриптовые языки администрирования Windows | 1 | 01-09-2011 18:40 | |
Найти и удалить | pi-a-ner | Общий по Linux | 6 | 11-09-2005 11:33 |
|