|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.06.2018, 00:34 | #1 |
Пользователь
Регистрация: 06.12.2017
Сообщений: 13
|
Сортировка простым выбором
Добрый вечер!
Возникла такая проблема, требуется отсортировать данные методом простого выбора. Почти все нормально, но возникает проблема с первой строкой, ее просто стирает. Подскажите, пожалуйста, в чем проблема, голова ночью не очень варит+много работы осталось!! Вот код сортировки по одному критерию: procedure TForm2.btn1_sort_okClick(Sender: TObject); type TInfo=record name:string[50]; data:string[35]; genre:string[20]; rating:integer; dlc:string[4]; engine:string[15]; end; var i,j,n:Integer; c:TInfo; begin if cbb1_sort.ItemIndex=0 then for i:=0 to strngrd1.rowcount-1 do begin n:=i; for j:=i+1 to strngrd1.rowcount do if strngrd1.Cells[0,j]<strngrd1.Cells[0,n] then n:=j; if n <> i then begin c.name:=strngrd1.Cells[0,i]; c.data:=strngrd1.Cells[1,i]; c.genre:=strngrd1.Cells[2,i]; c.rating:=StrToInt(strngrd1.Cells[3,i]); c.dlc:=strngrd1.Cells[4,i]; c.engine:=strngrd1.Cells[5,i]; strngrd1.Cells[0,i]:=strngrd1.Cells[0,n]; strngrd1.Cells[1,i]:=strngrd1.Cells[1,n]; strngrd1.Cells[2,i]:=strngrd1.Cells[2,n]; strngrd1.Cells[3,i]:=strngrd1.Cells[3,n]; strngrd1.Cells[4,i]:=strngrd1.Cells[4,n]; strngrd1.Cells[5,i]:=strngrd1.Cells[5,n]; strngrd1.Cells[0,n]:=c.name; strngrd1.Cells[1,n]:=c.data; strngrd1.Cells[2,n]:=c.genre; strngrd1.Cells[3,n]:=inttostr(c.rating); strngrd1.Cells[4,n]:=c.dlc; strngrd1.Cells[5,n]:=c.engine; end; end; |
18.06.2018, 00:59 | #2 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Код:
Теперь по сути: значения StringGrid.RowCount хранят действительно количество строк, НО: нумерация их идёт от нуля, соответственно верхняя граница уменьшается на 1 (то есть 0 .. RowCount - 1) Следовательно, Ваши циклы должны выглядеть так: Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
18.06.2018, 01:03 | #3 |
Пользователь
Регистрация: 06.12.2017
Сообщений: 13
|
Как ни странно, но не работает...
|
18.06.2018, 01:05 | #4 |
Пользователь
Регистрация: 06.12.2017
Сообщений: 13
|
Так, стоп-с, беру свои слова обратно.
Все работает! Спасибо!!! |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сортировка простым выбором | qpuTuJlb | Общие вопросы Delphi | 0 | 09.11.2013 22:02 |
Сортировка строк простым выбором | datgen | Общие вопросы C/C++ | 0 | 25.12.2011 19:41 |
Сортировка простым выбором | vit9i | Помощь студентам | 1 | 31.05.2011 20:41 |
Сортировка простым выбором в Delphi | Vlad111 | Помощь студентам | 0 | 13.11.2009 10:03 |
Сортировка простым выбором (метод пузырька)) | Sparky | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 22.09.2009 18:06 |