![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сорт. по дате. [D5, Win95/98]
Елена © (2002-01-27 22:30:00)У меня есть StringGrid, в него заносятся всякие данные, в том числе и дата. Мне нужно написать сортировку по дате, как это можно осуществить путём наименьших усилий?
MBo (2002-01-28 08:17:00) [1]procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
d,m,y:integer;
begin
randomize;
for i:=0 to sg1.rowcount-1 do begin
for j:=0 to sg1.colcount-1 do begin
if i=0 then begin
d:=random(30)+1;
y:=random(10)+1993;
m:=random(12)+1;
sg1.cells[i,j]:=datetostr(encodedate(y,m,d))
end
else sg1.cells[i,j]:=chr(random(26)+64);
end;
end;//заполнение случ. датами
end;
procedure TForm1.Button2Click(Sender: TObject);
var i,j:integer;
temp:tstringlist;
begin
temp:=TStringList.Create;
for i:=0 to SG1.RowCount-2 do begin
for j:=i+1 to SG1.RowCount - 1 do
if strtodate(SG1.Cells[0,i])>strtodate(SG1.Cells[0,j]) then
begin
Temp.Assign(SG1.Rows[i]);
SG1.Rows[i].Assign(SG1.Rows[j]);
SG1.Rows[j].Assign(Temp);
end;//сортировка пузырьком- для больших таблиц лучше
//QuickSort
end;
Temp.Free;
end;