56 static inline std::string
_2str(
const E*
const data) {
63 static inline std::string
_2str(
const char*
const data) {
67 return std::string(data);
75 static inline std::string
_2str(
const E*
const data,
unsigned length) {
82 char* buf =
new char[length + 1];
84 for (i = 0; i < length; i++) {
85 if ((
int) data[i] > 255) {
88 buf[i] = (char) data[i];
92 std::string ret = buf;
101 static inline std::string
_2str(
const char*
const data,
unsigned length) {
105 return std::string(data, length);
114 static int _2int(
const E*
const data) {
115 long long int result =
_2long(data);
129 return _2int(sData.c_str());
161 static long long int _2long(
const E*
const data) {
162 if (data == 0 || data[0] == 0) {
165 long long int sgn = 1;
167 if (data[0] ==
'+') {
170 if (data[0] ==
'-') {
174 long long int ret = 0;
175 for (; data[i] != 0; i++) {
178 char akt = (char) data[i];
179 if (akt < '0' || akt >
'9') {
197 if (data == 0 || data[0] == 0) {
200 long long int sgn = 1;
202 if (data[0] ==
'+') {
205 if (data[0] ==
'-') {
209 if (data[i] ==
'#') {
212 if (data[i] ==
'0' && (data[i + 1] ==
'x' || data[i + 1] ==
'X')) {
215 long long int ret = 0;
216 for (; data[i] != 0; i++) {
219 char akt = (char) data[i];
220 if (akt >=
'0' && akt <=
'9') {
222 }
else if (akt >=
'A' && akt <=
'F') {
223 ret += akt -
'A' + 10;
224 }
else if (akt >=
'a' && akt <=
'f') {
225 ret += akt -
'a' + 10;
243 if (data == 0 || data[0] == 0) {
248 if (data[0] ==
'+') {
251 if (data[0] ==
'-') {
257 int digits = std::numeric_limits<long long int>::digits10;
258 long long int ret = 0;
259 for (; data[i] != 0 && data[i] !=
'e' && data[i] !=
'E'; i++) {
260 char akt = (char) data[i];
261 if (akt < '0' || akt >
'9') {
262 if (pointPos < 0 && (akt ==
'.' || akt ==
',')) {
270 ret = ret * 10 + akt - 48;
273 int exponent = digits >= 0 ? 0 : -digits;
274 if (pointPos != -1) {
275 exponent += pointPos - i + 1;
279 return ret * sgn * (
SUMOReal) pow(10.0, exponent);
283 return ret * sgn * (
SUMOReal) pow(10.0,
_2int(data + i + 1) + exponent);
311 static bool _2bool(
const E*
const data) {
312 if (data == 0 || data[0] == 0) {
315 std::string s =
_2str(data);
316 std::transform(s.begin(), s.end(), s.begin(), ::tolower);
317 if (s ==
"1" || s ==
"yes" || s ==
"true" || s ==
"on" || s ==
"x" || s ==
"t") {
319 }
else if (s ==
"0" || s ==
"no" || s ==
"false" || s ==
"off" || s ==
"-" || s ==
"f") {
332 const std::string& def) {
341 static int _2intSec(
const E*
const data,
int def) {
342 if (data == 0 || data[0] == 0) {
353 static long long int _2longSec(
const E*
const data,
long def) {
354 if (data == 0 || data[0] == 0) {
366 if (data == 0 || data[0] == 0) {
382 if (data == 0 || data[0] == 0) {
393 static std::string
_2strSec(
const E*
const data,
int length,
394 const std::string& def) {
395 if (data == 0 || length == 0) {
398 return _2str(data, length);
409 while (data[i] != 0) {
static bool _2boolSec(const E *const data, bool def)
static int _hex2int(const E *const data)
static std::string _2str(const E *const data, unsigned length)
static SUMOReal _str2SUMOReal(const std::string &sData)
static SUMOReal _2SUMOReal(const E *const data)
static bool _2bool(const E *const data)
static long long int _2longSec(const E *const data, long def)
static long long int _hex2long(const E *const data)
static SUMOReal _2SUMORealSec(const E *const data, SUMOReal def)
static std::string _2str(const char *const data)
static long long int _2long(const E *const data)
static std::string _2str(const E *const data)
static int _str2int(const std::string &sData)
static std::string _2str(const char *const data, unsigned length)
static unsigned getLength(const E *const data)
static int _2int(const E *const data)
static int _strHex2int(const std::string &sData)
static int _2intSec(const E *const data, int def)
static std::string _2strSec(const E *const data, const std::string &def)
static std::string _2strSec(const E *const data, int length, const std::string &def)