Offipalsta.COM  

Palaa takaisin   Offipalsta.COM > Linkit muihin palveluihin > Elävä Arkisto > Programming > C/C++
Rekisteröidy Offiblogit Yhteisö Kalenteri Viestit tänään Haku

C/C++ C/C++, MSVC, GCC, G++, Borland C++ Builder

 
 
Työkalut Etsi tästä viestiketjusta Näkymä
  #1  
Vanha 28.09.2002, 08:30
Lars
Guest
 
Viestit: n/a
Perusasetus

QSort CStringArray


// first, declare these somewhere
void SortStringArray (CStringArray& ar, BOOL bDescending);
int CompareDescending(const void *a, const void *b);
int CompareAscending(const void *a, const void *b);

// put something in your CString array
CStringArray bob;
bob.Add("Are");
bob.Add("You");
bob.Add("Talking");
bob.Add("To");
bob.Add("Me?");

// sort it
SortStringArray(bob, TRUE);

// here's the code!

//////////////////////////////////////////////////////////////////////////
int CompareAscending(const void *a, const void *b)
{
CString *pA = (CString*)a;
CString *pB = (CString*)b;
return (pA->Compare(*pB));
}

//////////////////////////////////////////////////////////////////////////
int CompareDescending(const void *a, const void *b)
{
CString *pA = (CString*)a;
CString *pB = (CString*)b;
return (-1 * (pA->Compare(*pB)));
}

//////////////////////////////////////////////////////////////////////////
void SortStringArray (CStringArray& csa, BOOL bDescending)
{
int iArraySize = csa.GetSize();
if (iArraySize <= 0)
return;

int iCSSize = sizeof (CString*);
void* pArrayStart = (void *)&csa[0];

if (bDescending)
qsort (pArrayStart, iArraySize, iCSSize, CompareDescending);
else
qsort (pArrayStart, iArraySize, iCSSize, CompareAscending);
}

Ja jälleen, beautifier ennen käyttöä

--
Lars

 

Käyttäjiä lukemassa tätä viestiketjua: 1 (0 jäsentä and 1 vierasta)
 

Pikalinkit


Sivu luotu: 01:43 (GMT +2).