Exemplo n.º 1
0
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
//
//
// Set data element as a string
//
//
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
void dataHandlerString::setString(const imbxUint32 index, const std::string& value)
{
	PUNTOEXE_FUNCTION_START(L"dataHandlerString::setString");

	setUnicodeString(index, convertToUnicode(value));

	PUNTOEXE_FUNCTION_END();
}
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
//
//
// Overwrite setDouble so the value is written in the
//  exponential form if needed
//
//
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
void dataHandlerStringDS::setDouble(const imbxUint32 index, const double value)
{
	PUNTOEXE_FUNCTION_START(L"dataHandlerStringDS::setDouble");

	std::wostringstream convStream;
	convStream << value;
	setUnicodeString(index, convStream.str());

	PUNTOEXE_FUNCTION_END();
}
Exemplo n.º 3
0
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
//
//
// Set data element as an unsigned long
//
//
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
void dataHandlerString::setUnsignedLong(const imbxUint32 index, const imbxUint32 value)
{
	PUNTOEXE_FUNCTION_START(L"dataHandlerString::setUnsignedLong");

	std::wostringstream convStream;
	convStream << value;
	setUnicodeString(index, convStream.str());

	PUNTOEXE_FUNCTION_END();
}
	UErrorCode dateToDate(UDate date, UnicodeString &zoneId, C_DATE &DateOut, C_TIME &TimeOut, C_LONGINT &MillisecondOut){
		
		UErrorCode status = U_ZERO_ERROR;
		
		C_TEXT iso_date_format;
		iso_date_format.setUTF8String((const uint8_t *)ISO_DATE_FORMAT_STRING, ISO_DATE_FORMAT_STRING_SIZE);
		const UnicodeString fmtstr = UnicodeString((const UChar *)iso_date_format.getUTF16StringPtr());
		SimpleDateFormat isoFmt(fmtstr, status);
		
		if(status == U_ZERO_ERROR || status == U_USING_DEFAULT_WARNING || status == U_USING_FALLBACK_WARNING){
			
			TimeZone *zone;
			
			if(zoneId.length()){
				zone = TimeZone::createTimeZone(zoneId);
				
			}else{
				//use local if zone was omitted
				zone = TimeZone::createDefault();
			}
			
			if(zone){
				
				isoFmt.adoptTimeZone(zone);
				
			}
			
			UnicodeString str;
			str = isoFmt.format(date, str);
			
			CUTF8String isoDateString;
			setUnicodeString(isoDateString, str);
			
			int yyyy = atoi((const char *)isoDateString.substr(0, 4).c_str());
			int mm = atoi((const char *)isoDateString.substr(5, 2).c_str());
			int dd = atoi((const char *)isoDateString.substr(8, 2).c_str());
			int h = atoi((const char *)isoDateString.substr(11, 2).c_str());
			int m = atoi((const char *)isoDateString.substr(14, 2).c_str());
			int s = atoi((const char *)isoDateString.substr(17, 2).c_str());
			int ms = atoi((const char *)isoDateString.substr(20, 3).c_str());
			
			DateOut.setYearMonthDay(yyyy, mm, dd);
			TimeOut.setSeconds(s + (m * 60) + (h * 3600));
			MillisecondOut.setIntValue(ms);
			
			status = U_ZERO_ERROR;
			
		}
		
		return status;
		
	}
	bool setUnicodeString(CUTF8String &ustr, UnicodeString &str){
		
		bool success = false;
		
		C_TEXT t;
		
		if(setUnicodeString(t, str)){
			
			CUTF8String u;
			t.copyUTF8String(&ustr);
			
		}
		
		return success;
	}
	UErrorCode dateToText(UDate date, UnicodeString &formatString, UnicodeString &zoneId, C_TEXT &StringOut){
		
		UErrorCode status = U_ZERO_ERROR;
		
		SimpleDateFormat fmt(formatString, status);
		
		//the format string is valid
		if(status == U_ZERO_ERROR || status == U_USING_DEFAULT_WARNING  || status == U_USING_FALLBACK_WARNING){
			
			TimeZone *zone;
			
			if(zoneId.length()){
				zone = TimeZone::createTimeZone(zoneId);
				
			}else{
				//use local if zone was omitted
				zone = TimeZone::createDefault();
			}
			
			if(zone){
				
				fmt.adoptTimeZone(zone);
				
			}
			
			UnicodeString str;
			
			//export the date string
			str = fmt.format(date, str, status);
			
			if(status == U_ZERO_ERROR || status == U_USING_DEFAULT_WARNING  || status == U_USING_FALLBACK_WARNING){
				setUnicodeString(StringOut, str);
				status = U_ZERO_ERROR;
			}
			
		}
		
		return status;
		
	}