00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #include "stdafx.h"
00033 #include <libilliCore/StringHelper.h>
00034
00035 StringHelper::StringHelper(void)
00036 {
00037 }
00038
00039 StringHelper::~StringHelper(void)
00040 {
00041 }
00042
00043 wstring StringHelper::toWStr(string inString) {
00044 wstring retVal;
00045
00046
00047 for (std::string::const_iterator i = inString.begin(); i != inString.end(); i++) {
00048 retVal.append(1, *i);
00049 }
00050
00051
00052 return retVal;
00053 }
00054
00055
00056 string StringHelper::toNarrowStr(wstring inString) {
00057 string retVal;
00058
00059
00060
00061
00062 for (std::wstring::const_iterator i = inString.begin(); i != inString.end(); i++) {
00063 retVal.append(1, (char) *i);
00064 }
00065
00066
00067 return retVal;
00068 }
00069
00070 string StringHelper::numToString(LOOG_UINT64 inNum) {
00071 char locDigit = 0;
00072 string retStr = "";
00073 string temp = "";
00074
00075 if (inNum == 0) return "0";
00076
00077 while (inNum > 0) {
00078 locDigit = ((char)(inNum % 10)) + '0';
00079 inNum /= 10;
00080 temp = locDigit;
00081 temp.append(retStr);
00082 retStr = temp;
00083
00084 }
00085 return retStr;
00086 }
00087
00088
00089 LOOG_UINT64 StringHelper::stringToFractNum(string inString) {
00090 int locDigit = 0;
00091 LOOG_UINT64 retVal = 0;
00092
00093 LOOG_UINT64 locMult = 1000000;
00094
00095 size_t locStrLen = inString.length();
00096
00097 for (unsigned long i = 0; i < locStrLen; i++) {
00098 locDigit = inString[i] - '0';
00099
00100 if ( !((locDigit >= 0) && (locDigit <=9)) ) {
00101
00102 throw 0;
00103 }
00104
00105 retVal += (locDigit * locMult);
00106 locMult /= 10;
00107
00108 }
00109 return retVal;
00110
00111 }
00112
00113 LOOG_UINT64 StringHelper::stringToNum(string inString) {
00114 int locDigit = 0;
00115 LOOG_UINT64 retVal = 0;
00116 size_t locStrLen = inString.length();
00117
00118 for (unsigned long i = 0; i < locStrLen; i++) {
00119 locDigit = inString[i] - '0';
00120
00121 if ( !((locDigit >= 0) && (locDigit <=9)) ) {
00122
00123 throw 0;
00124 }
00125 retVal *= 10;
00126 retVal += locDigit;
00127
00128 }
00129 return retVal;
00130
00131 }
00132
00133
00134 unsigned char StringHelper::digitToHex(unsigned char inDigit) {
00135
00136 unsigned char locDigit = (inDigit > 9) ? (inDigit - 10) + A_BASE
00137 : (inDigit) + ZERO_BASE;
00138 return locDigit;
00139
00140 }
00141
00142 string StringHelper::charToHexString(unsigned char inChar) {
00143
00144 string retStr ="";
00145 retStr +=digitToHex(inChar / 16);
00146
00147 retStr+= digitToHex(inChar % 16);
00148 return retStr;
00149 }
00150