Аватар для Bastis
1 / 1 / 0
Регистрация: 22.09.2009
Сообщений: 39

Сделать сортировку StringGrid

22.09.2009, 19:38. Показов 6840. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задали сделать сортировку StringGrid. Код,который написала я преподу не понравился, сказал написать короче. Подскажите пожалуйста как...
Код:
C++
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
if (RG->ItemIndex==0)
 {
    String buff;
 String buff2;
 String buff3;
 
 for (int i = 0; i < SG->RowCount-1; i++)
   for (int j = i; j < SG->RowCount; j++)
    {
     if (SG->Cells[1][i]<SG->Cells[1][j])
     {
          buff=SG->Cells[0][i];
          SG->Cells[0][i]= SG->Cells[0][j];
          SG->Cells[0][j]=buff;
 
          buff2=SG->Cells[1][i];
          SG->Cells[1][i]= SG->Cells[1][j];
          SG->Cells[1][j]=buff2;
 
          buff3=SG->Cells[2][i];
          SG->Cells[2][i]= SG->Cells[2][j];
          SG->Cells[2][j]=buff3;
     }
    }
 }
 if (RG->ItemIndex==1)
 {
    String buff;
 String buff2;
 String buff3;
 for (int i = 1; i < SG->RowCount+1; i++)
   for (int j = i; j < SG->RowCount; j++)
   {
     if ((StrToInt(SG->Cells[2][i]))>StrToInt((SG->Cells[2][j])))
      {
       buff=SG->Cells[0][i];
       SG->Cells[0][i]= SG->Cells[0][j];
       SG->Cells[0][j]=buff;
 
       buff2=SG->Cells[1][i];
       SG->Cells[1][i]= SG->Cells[1][j];
       SG->Cells[1][j]=buff2;
 
       buff3=SG->Cells[2][i];
       SG->Cells[2][i]= SG->Cells[2][j];
       SG->Cells[2][j]=buff3;
      }
   }
 }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.09.2009, 19:38
Ответы с готовыми решениями:

Как ускорить сортировку StringGrid?
Привет! Провожу сортировку строк пузырьковым методом прямо StringGrid более 500 записей. При этом на момент работы алгоритма интерфейс...

Delphi 7 Stringgrid Нужно сделать цикл для заполнения Stringgrid данными из другого Stringgrid
Нужно чтобы из Stringgrid1 данные переносились в Stringgrid2 Но ТОЛЬКО ПО УСЛОВИЮ Таблицы Stringgrid2 На рис всё показано. За работающий...

Выполнить сортировку данных в объекте stringgrid
Необходимо выполнить сортировку заполненных вручную данных в новом stringgrid. Данные для заполнения: склады, участки, материалы,...

26
0 / 0 / 0
Регистрация: 19.01.2010
Сообщений: 25
19.01.2010, 20:28
Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
void __fastcall TMainForm::Button1Click(TObject *Sender)
{
  TStringList *sl=new TStringList;
  sl->StringGrid2->Cells[2][i];
  sl->CustomSort(MySortCompare);
  ShowMessage(sl->Text);
  delete sl;
}
Ругается что StringGrid2 не описан в TStringList , а то что там написано без объяснений я не понимаю, что там изменить чтобы обращение работало тоже не подрузамеваю. Все методом тыка и пока безрезультатно хотя метод тыка начался после 5-ти часового обдумывания и поиска что же сделать , чтобы работало...

Добавлено через 51 секунду
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
gradiusalisikты еще выбираешь по какому столбцу сортировать?
Да
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
19.01.2010, 20:32
gradiusalisik, а можно узнать из каких соображений появился этот код? в классе стринглист нет такого свойства точно... вы вообще справку по билдеру смотрели?
0
0 / 0 / 0
Регистрация: 19.01.2010
Сообщений: 25
19.01.2010, 20:37
Понятное дело что разжевывать не будут , но все досканально я не смогу сам сделать я просмотрел около 3-х книг в примерах и нет. Культина к примеру . Но с сортировкой и многими другими вещами так и не разобрался ...

Добавлено через 3 минуты
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
gradiusalisik, а можно узнать из каких соображений появился этот код?
Из того что данный путь ведет в столбец , который нужно сортировать.

Добавлено через 1 минуту
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
gradiusalisik, вы вообще справку по билдеру смотрели?
В самой программе она на англицйском , я к сожелению его не знаю, а переводить чуть ли ни целую книгу это не так просто и займет много времени.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
19.01.2010, 20:47
gradiusalisik, проблема в том, что код вам надо делать немного хитрее, чем он представлен в этой теме, вам надо сформировать список данных для стринглиста... т.е. пробежаться по всему гриду и конкатенацией объединить все столбцы построчно, потом отсортировать и потом уже разбить строки на ячейки по столбцам... в принципе сложностей нет... а заморский язык учить придеться, иначе будет сложно
0
0 / 0 / 0
Регистрация: 19.01.2010
Сообщений: 25
19.01.2010, 20:59
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
в принципе сложностей нет...
Для кого как , я пока только стараюсь что-нибудь понять и научиться чему-нибудь , поэтому для меня это архисложно.

Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
заморский язык учить придеться,
Чтобы учить язык надо ходить на курсы , а время не резина , его не растянешь ...

Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
код вам надо делать немного хитрее
Да я это подозревал, но как не знал так и не знаю).Еще я не понял , что из себя представляет вот эта часть программы , понял что это сама сортировка , но как подробно все происходит и откуда опции лемитед и т.п.

C++
1
2
3
4
5
6
7
8
int __fastcall MySortCompare(TStringList* List, int Index1, int Index2)
{
  AnsiString str1=List->Strings[Index1];
  str1 = str1.SubString(str1.Pos(" ") + 1, str1.LastDelimiter(" ") - 1 - str1.Pos(" "));
  AnsiString str2=List->Strings[Index2];
  str2 = str2.SubString(str2.Pos(" ") + 1, str2.LastDelimiter(" ") - 1 - str2.Pos(" "));
  return strcmp(str1.c_str(), str2.c_str());
}
И еще , вы не даете курсы билдера в ускоренном режиме? Мне бы они не помешали так как курсовую нужно сдать через пару дней, преподаватель дал ее поздно и я сомневаюсь что своими силами я что-нибудь успею((
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
19.01.2010, 23:53
gradiusalisik, это функция сравнения, которую использует для своих нужд пользовательская сортировка
0
 Аватар для Зоти Сергей
230 / 227 / 65
Регистрация: 18.12.2009
Сообщений: 316
21.01.2010, 00:43
Ну.. можно еще один цикл захренделячить, чтобы короче было, и буферы глобально вывести.


C++
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
 String buff;
 String buff2;
 String buff3;
if (RG->ItemIndex==0)
 {
   
 for (int i = 0; i < SG->RowCount-1; i++)
   for (int j = i; j < SG->RowCount; j++)
    {
     if (SG->Cells[1][i]<SG->Cells[1][j])
     {
        for(int k=0;k<3;k++)
        {
          buff=SG->Cells[k][i];
          SG->Cells[k][i]= SG->Cells[k][j];
          SG->Cells[k][j]=buff;
        }
     }
    }
 }
 if (RG->ItemIndex==1)
 {
    
 for (int i = 1; i < SG->RowCount+1; i++)
   for (int j = i; j < SG->RowCount; j++)
   {
     if ((StrToInt(SG->Cells[2][i]))>StrToInt((SG->Cells[2][j])))
      {
        for(int k=0;k<3;k++)
        {
           buff=SG->Cells[k][i];
           SG->Cells[k][i]= SG->Cells[k][j];
           SG->Cells[k][j]=buff;
        }
      }
   }
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.01.2010, 00:43

Нужно доделать сортировку StringGrid методом простых обменов
Сортирует по первому столбцу StringGrid. Не передвигает только остальные столбцы Вот скрин SG procedure...

Сортировку вставками меняем на Пирамидальную сортировку и на Сортировку подсчётом
Здравствуйте. Я не как не могу разобраться.Помогите. У меня есть листинг сортировки вставками: #include &quot;stdafx.h&quot; ...

Как сделать сортировку по id
Здравствуйте. Ребят помогите , как сделать вывод пользователей согласно id то-есть id=1 первый в списке, id=2 второй в списке и так далее....

Как сделать сортировку
Как сделать сортировку переделав этот код, чтобы получилось как в примере double massive = new double; int countm = 0; ...

Как сделать сортировку?
Есть таблица transfer: -------------- id | who -------------- 1 | Petr 2 | Vasa 3 | Vasa 4 | Eugen


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

Новые блоги и статьи
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru