56 static std::string
_2str(
const E*
const data) {
66 static int _2int(
const E*
const data) {
67 return _2int(data, INT_MAX);
76 static long _2long(
const E*
const data) {
77 return _2long(data, INT_MAX);
96 static bool _2bool(
const E*
const data) {
113 static std::string
_2str(
const E*
const data,
unsigned length) {
120 char* buf =
new char[length + 1];
122 for (i = 0; i < length; i++) {
123 if ((
int) data[i] > 255) {
126 buf[i] = (char) data[i];
130 std::string ret = buf;
141 static int _2int(
const E*
const data,
unsigned length) {
142 if (data == 0 || length == 0 || data[0] == 0) {
147 if (data[0] ==
'+') {
150 if (data[0] ==
'-') {
155 for (; i < length && data[i] != 0; i++) {
157 char akt = (char) data[i];
158 if (akt < '0' || akt >
'9') {
161 val = val + akt - 48;
175 static long _2long(
const E*
const data,
unsigned length) {
176 if (data == 0 || length == 0 || data[0] == 0) {
181 if (data[0] ==
'+') {
184 if (data[0] ==
'-') {
189 for (; i < length && data[i] != 0; i++) {
191 char akt = (char) data[i];
192 if (akt < '0' || akt >
'9') {
195 ret = ret + akt - 48;
210 if (data == 0 || length == 0 || data[0] == 0) {
216 if (data[0] ==
'+') {
219 if (data[0] ==
'-') {
223 for (; i < length && data[i] != 0 && data[i] !=
'.' && data[i] !=
',' && data[i] !=
'e' && data[i] !=
'E'; i++) {
225 char akt = (char) data[i];
226 if (akt < '0' || akt >
'9') {
229 ret = ret + akt - 48;
232 if ((
char) data[i] !=
'.' && (
char) data[i] !=
',' && data[i] !=
'e' && data[i] !=
'E') {
238 if (data[i] ==
'e' || data[i] ==
'E') {
241 int exp =
_2int(data + i + 1, length - i - 1);
243 return ret * sgn * exp2;
253 for (; i < length && data[i] != 0 && data[i] !=
'e' && data[i] !=
'E'; i++) {
254 char akt = (char) data[i];
255 if (akt < '0' || akt >
'9') {
258 ret = ret + ((
SUMOReal)(akt - 48)) / div;
261 if (data[i] !=
'e' && data[i] !=
'E') {
267 int exp =
_2int(data + i + 1, length - i - 1);
269 return ret * sgn * exp2;
282 static bool _2bool(
const E*
const data,
unsigned length) {
283 if (data == 0 || length == 0 || data[0] == 0) {
286 char akt = (char) data[0];
287 if (akt ==
'1' || akt ==
'x' || akt ==
't' || akt ==
'T') {
290 if (akt ==
'0' || akt ==
'-' || akt ==
'f' || akt ==
'F') {
300 static char*
_2charp(
const E*
const data,
int length) {
301 if (length == 0 || data == 0) {
304 char* ret =
new char[length + 1];
306 for (; i < length; i++) {
307 ret[i] = (char) data[i];
320 while (data[i] != 0) {