⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sortcstringarray.h

📁 主要是配合avr单片机的一个测试程序,里面有串口通讯,和listiew潜入控件
💻 H
字号:
// SortCStringArray.h
//
// Based on the article "QSort for CStringArray" by Chris Losinger -
//    http://www.codeguru.com/cpp/cpp/cpp_mfc/collections/article.php/c809/
//
///////////////////////////////////////////////////////////////////////////////

#ifndef SORTCSTRINGARRAY_H
#define SORTCSTRINGARRAY_H


class CSortCStringArray
{
private:
	CSortCStringArray() {};
	~CSortCStringArray() {};

public:
	static void SortCStringArray(CStringArray * psa, 
								 BOOL bCaseSensitive = FALSE, 
								 BOOL bAscending = TRUE)
	{
		int nArraySize = psa->GetSize();
		if (nArraySize <= 0)
			return;

		int nCStringSize = sizeof (CString*);
		void* pArrayStart = (void *)&(*psa)[0];

		if (bCaseSensitive)
		{
			if (bAscending)
				qsort(pArrayStart, nArraySize, nCStringSize, CompareAscending);
			else
				qsort(pArrayStart, nArraySize, nCStringSize, CompareDescending);
		}
		else
		{
			if (bAscending)
				qsort(pArrayStart, nArraySize, nCStringSize, CompareNCAscending);
			else
				qsort(pArrayStart, nArraySize, nCStringSize, CompareNCDescending);
		}
	}

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

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

	static int CompareNCAscending(const void *a, const void *b)
	{
		CString *pA = (CString*)a;
		CString *pB = (CString*)b;
		return (pA->CompareNoCase(*pB));
	}

	static int CompareNCDescending(const void *a, const void *b)
	{
		CString *pA = (CString*)a;
		CString *pB = (CString*)b;
		return (-1 * (pA->CompareNoCase(*pB)));
	}
};

#endif //SORTCSTRINGARRAY_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -