Schnelles sortieren eines StringGrids

Eine schnelle Sortierroutine von Alfred Schneider aus dem Entwicklerforum.

Diese sortiert ein Grid unter Angabe der Spalte alphanummerisch. Im Gegensatz zu anderen Routinen arbeitet diese sehtr schnell und ist auch größerern Grids gewachsen. Sortierungen nach Datum oder nummerisch können impelmentiert werden, in dem der Vergelich entsprechend abgeändert wird.

void StringGridSort(TStringGrid* StringGrid, int ACol)
{
int w,x,z,sw;
String sbuf,s;
z=StringGrid->RowCount-1;
if(z>1)
	{
	for(x=StringGrid->FixedRows;x<=z;x++)
		{
		s=StringGrid->Cells[ACol][x];
		sw=0;
		for(w=x;w<=z;w++)
			{
			if(s.AnsiCompare(StringGrid->Cells[ACol][w])>0)
				{
				s=StringGrid->Cells[ACol][w];
				sw=w;
				}
			}
		if(sw>0)
			{
			w=sw;
			sbuf=StringGrid->Rows[x]->Text;
			StringGrid->Rows[x]->Text=StringGrid->Rows[w]->Text;
			StringGrid->Rows[w]->Text=sbuf;
			}
		}
	}
}


Zur Übersicht