Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 26.01.2017
Сообщений: 4

Как объединить одинаковые строки в таблице

26.01.2017, 22:24. Показов 2541. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно в таблице найти строки с одинаковыми значениями
сложить их,затем удалить одинаковые строки за исключением последней.

У меня почему-то при нахождении одинаковых строк, удаляется все.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
   
 int lс_num=0;
    for( int r = 0; r < verticalHeader()->count(); ++r )
    {
        for( int c = 0; c < horizontalHeader()->count(); ++c )
        {
 
 
         QTableWidgetItem *items =  item( r, c );
         QTableWidgetItem *items2 =  item( r, 2 );
         QTableWidgetItem  *items3 = new QTableWidgetItem;
     if(item(r,0)!=0){
     if(items->text().contains(name,Qt::CaseInsensitive) )
     {
         lс_num+=items2->text().toInt();
           items3 -> setText(QString::number(lc_num));
           setItem(r,2,items3);
           removeRow(r);
 
     }}}}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.01.2017, 22:24
Ответы с готовыми решениями:

Объединить строки в таблице access
Привет всем форумчане! У меня такая проблема, в access есть таблица в нем находится несколько строк с данными я хочу объединить...

C#: WP8: как объединить одинаковые коды?
Здравствуйте. у меня есть 4 одинаковых функций, для четырех разных Image(&quot;Tap&quot;-event). как их объединить в одну функцию? я еще не умею...

Как объединить одинаковые таблицы в ворде?
Есть несколько одинаковых таблиц в ворде. Между ними стоит знак абзаца. Как в автоматическом режиме удалить этот знак и объединить...

6
137 / 107 / 23
Регистрация: 06.10.2008
Сообщений: 451
27.01.2017, 07:39
Цитата Сообщение от frol9999 Посмотреть сообщение
items->text().contains(name,Qt::CaseInsensitiv e)
- откуда берется name? Есть подозрение, что данный параметр выбирается из какой-то строки, а потом, при переборе, данный алгоритм естественно находит его в той же строке на том же месте откуда он был взят.
0
0 / 0 / 0
Регистрация: 26.01.2017
Сообщений: 4
27.01.2017, 11:17  [ТС]
name берётся после добавления новой строки

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
void Basket::add(QLineEdit *Lc, QLineEdit *Name, QLineEdit *Count){
 
 
    QMap<int,QString> str;
    str[0]=Lc->text();
    str[1]=Name->text();
    str[2]=Count->text();
 
 
        int row = rowCount();
        setRowCount(row+1);
 
    for (int i = 0; i <3; i++){
 
    QTableWidgetItem  *items = new QTableWidgetItem;
      items -> setText(str[i]);
      setItem(row,i,items);
    }
 
    combineString(Lc->text());
 
 
}
 
void Basket::combineString(QString name){
 
    int lc_num=0;
    for( int r = 0; r < verticalHeader()->count(); ++r )
    {
        for( int c = 0; c < horizontalHeader()->count(); ++c )
        {
 
 
         QTableWidgetItem *items =  item( r, c );
         QTableWidgetItem *items2 =  item( r, 2 );
         QTableWidgetItem  *items3 = new QTableWidgetItem;
     if(item(r,0)!=0){
     if(items->text().contains(name,Qt::CaseInsensitive) )
     {
         lc_num+=items2->text().toInt();
           items3 -> setText(QString::number(lc_num));
           setItem(r,2,items3);
           removeRow(r);
 
     }}}}
 
 
 
    }
0
137 / 107 / 23
Регистрация: 06.10.2008
Сообщений: 451
27.01.2017, 11:21
А если попробовать так?
C++ (Qt)
1
2
3
4
5
6
7
combineString(Lc->text());
    for (int i = 0; i <3; i++){
 
          QTableWidgetItem  *items = new QTableWidgetItem;
          items -> setText(str[i]);
          setItem(row,i,items);
    }
0
0 / 0 / 0
Регистрация: 26.01.2017
Сообщений: 4
27.01.2017, 13:44  [ТС]
так работает но столбцы не складываются

Добавлено через 2 часа 16 минут
программа падает при совпадении строк, если функцию
C++ (Qt)
1
combineString(Lc->text());
добавить выше вставки новой строки.
0
137 / 107 / 23
Регистрация: 06.10.2008
Сообщений: 451
27.01.2017, 14:02
Лучший ответ Сообщение было отмечено frol9999 как решение

Решение

Оставить ее на старом месте
C++ (Qt)
1
 for( int r = 0; r < verticalHeader()->count()-1; ++r )
Добавлено через 7 минут
Хотя это вряд ли поможет
0
0 / 0 / 0
Регистрация: 26.01.2017
Сообщений: 4
27.01.2017, 15:50  [ТС]
Сделал так вроде работает
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
int lc_num=0;
    for( int r = 0; r < verticalHeader()->count(); ++r )
    {
        for( int c = 0; c < horizontalHeader()->count(); ++c )
        {
 
 
         QTableWidgetItem *items =  item( r, c );
         QTableWidgetItem *items2 =  item( r, 2 );
         QTableWidgetItem  *items3 = new QTableWidgetItem;
     if(item(r,0)!=0){
     if(items->text().contains(name,Qt::CaseInsensitive) )
     {
         lc_num+=items2->text().toInt();
           items3 -> setText(QString::number(lc_num));
           setItem(r,2,items3);
 
 
     }}}}
 
    for( int r = 0; r < verticalHeader()->count()-1; ++r )
    {
        for( int c = 0; c < horizontalHeader()->count(); ++c )
        {
 
 
         QTableWidgetItem *items =  item( r, c );
 
     if(item(r,0)!=0){
     if(items->text().contains(name,Qt::CaseInsensitive) )
     {
 
      removeRow(r);
 
     }}}}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.01.2017, 15:50
Помогаю со студенческими работами здесь

Как объединить одинаковые значения в графике
Добрый день! Почитала темы, как решить проблему с графиком у Экселя, чтобы одинаковые данные объединялись, но ничего не выходит.. Нужно,...

Как объединить одинаковые значения в круговой диаграмме C#?
Есть несколько одинаковых значений, как сделать, чтоб они отображались как один сегмент на круговой диаграмме? я добавляю информацию так:...

Как объединить одинаковые записи и увеличить count
Как объединить одинаковые записи и увеличить count этой записи в случае совпадения? Должны совпадать name и day, если есть совпадение...

Две одинаковые строки не распознаются, как одинаковые. Такое возможно? Скриншот дебага прилагается.
Пишу программу, начал тестировать, проходить всё пошагово (пишущийся в данный момент функционал). В одном месте в коде сравниваю тексты. ...

Как объединить одинаковые dataGridView1 и dataGridView2 или как сделать один excel документ
Привет форумчане! на форме есть dataGridView1 и dataGridView2 у них одинаковое количество столбцов, их название, типы данных тоже...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru