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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2009, 21:03   #1
Ch00kan0ff
 
Регистрация: 23.03.2009
Сообщений: 8
По умолчанию Сортировка в StringGrid

Имеется StringGrid и кнопка соследующим кодом
Код:
int i,j;
  for (j=0; j<StringGrid1->RowCount; j++)
     for (i=0; i<=StringGrid1->RowCount-j; i++)
       if (StrToInt(StringGrid1->Cells[1][i])>StrToInt(StringGrid1->Cells[1][i+1]))
          {StringGrid1->Rows[StringGrid1->RowCount+1]=StringGrid1->Rows[i+1];
           StringGrid1->Rows[i+1]= StringGrid1->Rows[i];
           StringGrid1->Rows[i]=StringGrid1->Rows[StringGrid1->RowCount+1];
          }
т. е. сортировка пузырьком по столбцу с числами. При выполнении создается лишняя строка с непонятным мне содержимым. Помогите пожалуйста сделать обработку адекватной.
Ch00kan0ff вне форума Ответить с цитированием
Старый 24.03.2009, 17:09   #2
Svetlag
Пользователь
 
Аватар для Svetlag
 
Регистрация: 24.02.2009
Сообщений: 85
По умолчанию

Попробуйте так
Код:
int i,j;
   for (j=1; j<StringGrid1->RowCount-1; j++)
     for (i=1; i<StringGrid1->RowCount-j-1; i++)
       if (StrToInt(StringGrid1->Cells[1][i])>StrToInt(StringGrid1->Cells[1][i+1]))
          {StringGrid1->Rows[StringGrid1->RowCount]=StringGrid1->Rows[i+1];
           StringGrid1->Rows[i+1]= StringGrid1->Rows[i];
           StringGrid1->Rows[i]=StringGrid1->Rows[StringGrid1->RowCount];
         }
Svetlag вне форума Ответить с цитированием
Старый 24.03.2009, 18:09   #3
Ch00kan0ff
 
Регистрация: 23.03.2009
Сообщений: 8
По умолчанию

Код:
int i,j;
StringGrid1->RowCount=StringGrid1->RowCount+1;
  for (j=0; j<StringGrid1->RowCount-1; j++)
     for (i=0; i<StringGrid1->RowCount-j-1; i++)
       if (StrToInt(StringGrid1->Cells[1][i])!=0 &&  StrToInt(StringGrid1->Cells[1][i+1])!=0)
       if (StrToInt(StringGrid1->Cells[1][i])>StrToInt(StringGrid1->Cells[1][i+1]))
          {StringGrid1->Rows[StringGrid1->RowCount+1]=StringGrid1->Rows[i+1];
           StringGrid1->Rows[i+1]= StringGrid1->Rows[i];
           StringGrid1->Rows[i]=StringGrid1->Rows[StringGrid1->RowCount+1];
          }
     StringGrid1->RowCount=StringGrid1->RowCount-1;
Всё я понял. ЗАРАБОТАЛО!!!

Svetlag, спасибо за подсказку.
Ch00kan0ff вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка в StringGrid с параметрами строки Xataby4 Общие вопросы Delphi 13 16.04.2013 01:24
Сортировка Шелла и Шейкер-сортировка AleksandrMakarov Паскаль, Turbo Pascal, PascalABC.NET 11 11.03.2012 12:18
StringGrid и сортировка dee_lv Помощь студентам 5 02.05.2008 17:51
Delphi: Сортировка строк в StringGrid, критерий - элемент ячейки Andris Помощь студентам 9 09.03.2008 23:04