stringutils.cpp

来自「这是VCF框架的代码」· C++ 代码 · 共 2,672 行 · 第 1/5 页

CPP
2,672
字号
				//	%S - Second as decimal number (00  59)				case 'S' : {					result.append( current, (p-current) -formatArgCount );					if ( hashCharFound ) {						#ifdef VCF_OSX							CFTextString cfStr;							cfStr.format( CFSTR("%d"), date.getSecond() );							cfStr.copy( tmp, minVal<uint32>(cfStr.length(),tmpLen-1) );							tmp[minVal<uint32>(cfStr.length(),tmpLen-1) ] = 0;						#elif defined(VCF_POSIX) || defined(VCF_CW_W32) || defined(VCF_DMC)							swprintf( tmp, tmpLen-1, L"%d", date.getSecond()  );						#else							swprintf( tmp, L"%d", date.getSecond()  );						#endif					}					else {						#ifdef VCF_OSX							CFTextString cfStr;							cfStr.format( CFSTR("%02d"), date.getSecond() );							cfStr.copy( tmp, minVal<uint32>(cfStr.length(),tmpLen-1) );							tmp[minVal<uint32>(cfStr.length(),tmpLen-1) ] = 0;						#elif defined(VCF_POSIX) || defined(VCF_CW_W32) || defined(VCF_DMC)							swprintf( tmp, tmpLen-1, L"%02d", date.getSecond()  );						#else							swprintf( tmp, L"%02d", date.getSecond()  );						#endif					}					result += tmp;					current = p + 1;					hashCharFound = false;					formatArgCount = 1;				}				break;				//	%U - Week of year as decimal number, with Sunday as first day of week (00  53)				case 'U' : {					result.append( current, (p-current) -formatArgCount );					if ( hashCharFound ) {						#ifdef VCF_OSX							CFTextString cfStr;							cfStr.format( CFSTR("%d"), date.getWeekOfYearStartingSun() );							cfStr.copy( tmp, minVal<uint32>(cfStr.length(),tmpLen-1) );							tmp[minVal<uint32>(cfStr.length(),tmpLen-1) ] = 0;						#elif defined(VCF_POSIX) || defined(VCF_CW_W32) || defined(VCF_DMC)							swprintf( tmp, tmpLen-1, L"%d", date.getWeekOfYearStartingSun()  );						#else							swprintf( tmp, L"%d", date.getWeekOfYearStartingSun()  );						#endif					}					else {						#ifdef VCF_OSX							CFTextString cfStr;							cfStr.format( CFSTR("%02d"), date.getWeekOfYearStartingSun() );							cfStr.copy( tmp, minVal<uint32>(cfStr.length(),tmpLen-1) );							tmp[minVal<uint32>(cfStr.length(),tmpLen-1) ] = 0;						#elif defined(VCF_POSIX) || defined(VCF_CW_W32) || defined(VCF_DMC)							swprintf( tmp, tmpLen-1, L"%02d", date.getWeekOfYearStartingSun()  );						#else							swprintf( tmp, L"%02d", date.getWeekOfYearStartingSun()  );						#endif					}					result += tmp;					current = p + 1;					hashCharFound = false;					formatArgCount = 1;				}				break;				//	%w - Weekday as decimal number (0  6; Sunday is 0)				case 'w' : {					result.append( current, (p-current) -formatArgCount );					#ifdef VCF_OSX						CFTextString cfStr;						cfStr.format( CFSTR("%d"), date.getWeekDay() );						cfStr.copy( tmp, minVal<uint32>(cfStr.length(),tmpLen-1) );						tmp[minVal<uint32>(cfStr.length(),tmpLen-1) ] = 0;					#elif defined(VCF_POSIX) || defined(VCF_CW_W32) || defined(VCF_DMC)						swprintf( tmp, tmpLen-1, L"%d", (int)date.getWeekDay()  );					#else						swprintf( tmp, L"%d", (int)date.getWeekDay()  );					#endif					result += tmp;					current = p + 1;					hashCharFound = false;					formatArgCount = 1;				}				break;				//	%W - Week of year as decimal number, with Monday as first day of week (00  53)				case 'W' : {					result.append( current, (p-current) -formatArgCount );					if ( hashCharFound ) {						#ifdef VCF_OSX							CFTextString cfStr;							cfStr.format( CFSTR("%d"), date.getWeekOfYearStartingMon() );							cfStr.copy( tmp, minVal<uint32>(cfStr.length(),tmpLen-1) );							tmp[minVal<uint32>(cfStr.length(),tmpLen-1) ] = 0;						#elif defined(VCF_POSIX) || defined(VCF_CW_W32) || defined(VCF_DMC)							swprintf( tmp, tmpLen-1, L"%d", date.getWeekOfYearStartingMon()  );						#else							swprintf( tmp, L"%d", date.getWeekOfYearStartingMon()  );						#endif					}					else {						#ifdef VCF_OSX							CFTextString cfStr;							cfStr.format( CFSTR("%02d"), date.getWeekOfYearStartingMon() );							cfStr.copy( tmp, minVal<uint32>(cfStr.length(),tmpLen-1) );							tmp[minVal<uint32>(cfStr.length(),tmpLen-1) ] = 0;						#elif defined(VCF_POSIX) || defined(VCF_CW_W32) || defined(VCF_DMC)							swprintf( tmp, tmpLen-1, L"%02d", date.getWeekOfYearStartingMon()  );						#else							swprintf( tmp, L"%02d", date.getWeekOfYearStartingMon()  );						#endif					}					result += tmp;					current = p + 1;					hashCharFound = false;					formatArgCount = 1;				}				break;				//	%x - Date representation for current locale				case 'x' : {					result.append( current, (p-current) -formatArgCount );					result += L"{Locale's Date}";					current = p + 1;					hashCharFound = false;					formatArgCount = 1;				}				break;				//	%X - Time representation for current locale				case 'X' : {					result.append( current, (p-current) -formatArgCount );					result += L"{Locale's Time}";					current = p + 1;					hashCharFound = false;					formatArgCount = 1;				}				break;				//	%y - Year without century, as decimal number (00  99)				case 'y' : {					result.append( current, (p-current) -formatArgCount );					if ( hashCharFound ) {						#ifdef VCF_OSX							CFTextString cfStr;							cfStr.format( CFSTR("%d"), y % 100 );							cfStr.copy( tmp, minVal<uint32>(cfStr.length(),tmpLen-1) );							tmp[minVal<uint32>(cfStr.length(),tmpLen-1) ] = 0;						#elif defined(VCF_POSIX) || defined(VCF_CW_W32) || defined(VCF_DMC)							swprintf( tmp, tmpLen-1, L"%d", y % 100  );						#else							swprintf( tmp, L"%d", y % 100  );						#endif					}					else {						#ifdef VCF_OSX							CFTextString cfStr;							cfStr.format( CFSTR("%02d"), y % 100 );							cfStr.copy( tmp, minVal<uint32>(cfStr.length(),tmpLen-1) );							tmp[minVal<uint32>(cfStr.length(),tmpLen-1) ] = 0;						#elif defined(VCF_POSIX) || defined(VCF_CW_W32) || defined(VCF_DMC)							swprintf( tmp, tmpLen-1, L"%02d", y % 100  );						#else							swprintf( tmp, L"%02d", y % 100  );						#endif					}					result += tmp;					current = p + 1;					hashCharFound = false;					formatArgCount = 1;				}				break;				//	%Y - Year with century, as decimal number				case 'Y' : {					result.append( current, (p-current) -formatArgCount );					#ifdef VCF_OSX						CFTextString cfStr;						cfStr.format( CFSTR("%04d"), y );						cfStr.copy( tmp, minVal<uint32>(cfStr.length(),tmpLen-1) );						tmp[minVal<uint32>(cfStr.length(),tmpLen-1) ] = 0;					#elif defined(VCF_POSIX) || defined(VCF_CW_W32) || defined(VCF_DMC)						swprintf( tmp, tmpLen-1, L"%04d", y  );					#else						swprintf( tmp, L"%04d", y  );					#endif					result += tmp;					current = p + 1;					hashCharFound = false;					formatArgCount = 1;				}				break;				default : {					hashCharFound = false;					formatArgCount = 1;				}				break;			}		}		p++;	}	if ( current < p ) {		result.append( current, (p-current) );	}	return result;}String StringUtils::convertFormatString( const String& formattedString ){	#ifdef VCF_OSX		String result = formattedString;		String lsDirective = "%ls";		size_t pos = result.find( lsDirective );		while ( pos != String::npos ) {			result.erase( pos, lsDirective.length() );			result.insert( pos, "%s" );			pos = result.find( lsDirective, pos + 1 );		}		return result;	#else		return formattedString;	#endif}VCF::String StringUtils::toString( const VariantData& value ){	return value.toString();}VCF::String StringUtils::translateVKCodeToString( VirtualKeyCode code ){	VCF::String result;	switch ( code ) {		case vkF1: {						result = "F1";		}		break;				case vkF2: {						result = "F2";		}		break;		case vkF3: {						result = "F3";		}		break;		case vkF4: {						result = "F4";		}		break;		case vkF5: {						result = "F5";		}		break;		case vkF6: {						result = "F6";		}		break;		case vkF7: {						result = "F7";		}		break;		case vkF8: {						result = "F8";		}		break;		case vkF9: {						result = "F9";		}		break;		case vkF10: {						result = "F10";		}		break;		case vkF11: {						result = "F11";		}		break;		case vkF12: {						result = "F12";		}		break;		case vkUpArrow: {						result = "Up";		}		break;		case vkDownArrow: {						result = "Down";		}		break;		case vkLeftArrow: {						result = "Left";		}		break;		case vkRightArrow: {						result = "Right";		}		break;		case vkPgUp: {			result = "Page Up";		}		break;		case vkPgDown: {			result = "Page Down";		}		break;		case vkHome: {			result = "Home";		}		break;		case vkEnd: {			result = "End";		}		break;		case vkInsert: {			result = "Ins";		}		break;		case vkDelete: {			result = "Del";		}		break;		case vkBackSpace: {			result = "Back";		}		break;		case vkNumber0: {			result = "0";		}		break;		case vkNumber1: {			result = "1";		}		break;		case vkNumber2: {			result = "2";		}		break;		case vkNumber3: {			result = "3";		}		break;		case vkNumber4: {			result = "4";		}		break;		case vkNumber5: {			result = "5";		}		break;		case vkNumber6: {			result = "6";		}		break;		case vkNumber7: {			result = "7";		}		break;		case vkNumber8: {			result = "8";		}		break;		case vkNumber9: {			result = "9";		}		break;		case vkLetterA: {			result = "A";		}		break;		case vkLetterB: {			result = "B";		}		break;		case vkLetterC: {			result = "C";		}		break;		case vkLetterD: {			result = "D";		}		break;		case vkLetterE: {			result = "E";		}		break;		case vkLetterF: {			result = "F";		}		break;					case vkLetterG: {			result = "G";		}		break;		case vkLetterH: {			result = "H";		}		break;		case vkLetterI: {			result = "I";		}		break;		case vkLetterJ: {			result = "J";		}		break;		case vkLetterK: {			result = "K";		}		break;		case vkLetterL: {			result = "L";		}		break;		case vkLetterM: {			result = "M";		}		break;		case vkLetterN: {			result = "N";		}		break;		case vkLetterO: {			result = "O";		}		break;		case vkLetterP: {			result = "P";		}		break;		case vkLetterQ: {			result = "Q";		}		break;		case vkLetterR: {

⌨️ 快捷键说明

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