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) {
143 if (data == 0 || data[0] == 0) {
148 if (data[0] ==
'+') {
151 if (data[0] ==
'-') {
156 for (; data[i] != 0; i++) {
159 char akt = (char) data[i];
160 if (akt < '0' || akt >
'9') {
178 if (data == 0 || data[0] == 0) {
183 if (data[0] ==
'+') {
186 if (data[0] ==
'-') {
190 if (data[i] ==
'#') {
193 if (data[i] ==
'0' && (data[i + 1] ==
'x' || data[i + 1] ==
'X')) {
197 for (; data[i] != 0; i++) {
200 char akt = (char) data[i];
201 if (akt >=
'0' && akt <=
'9') {
203 }
else if (akt >=
'A' && akt <=
'F') {
204 ret += akt -
'A' + 10;
205 }
else if (akt >=
'a' && akt <=
'f') {
206 ret += akt -
'a' + 10;
224 if (data == 0 || data[0] == 0) {
229 if (data[0] ==
'+') {
232 if (data[0] ==
'-') {
238 int digits = std::numeric_limits<SUMOLong>::digits10;
240 for (; data[i] != 0 && data[i] !=
'e' && data[i] !=
'E'; i++) {
241 char akt = (char) data[i];
242 if (akt < '0' || akt >
'9') {
243 if (pointPos < 0 && (akt ==
'.' || akt ==
',')) {
251 ret = ret * 10 + akt - 48;
254 int exponent = digits >= 0 ? 0 : -digits;
255 if (pointPos != -1) {
256 exponent += pointPos - i + 1;
260 return ret * sgn * (
SUMOReal) pow(10.0, exponent);
264 return ret * sgn * (
SUMOReal) pow(10.0,
_2int(data + i + 1) + exponent);
282 static bool _2bool(
const E*
const data) {
283 if (data == 0 || data[0] == 0) {
286 std::string s =
_2str(data);
287 std::transform(s.begin(), s.end(), s.begin(), ::tolower);
288 if (s ==
"1" || s ==
"yes" || s ==
"true" || s ==
"on" || s ==
"x" || s ==
"t") {
290 }
else if (s ==
"0" || s ==
"no" || s ==
"false" || s ==
"off" || s ==
"-" || s ==
"f") {
303 const std::string& def) {
312 static int _2intSec(
const E*
const data,
int def) {
313 if (data == 0 || data[0] == 0) {
325 if (data == 0 || data[0] == 0) {
337 if (data == 0 || data[0] == 0) {
353 if (data == 0 || data[0] == 0) {
364 static std::string
_2strSec(
const E*
const data,
int length,
365 const std::string& def) {
366 if (data == 0 || length == 0) {
369 return _2str(data, length);
380 while (data[i] != 0) {