36 while (i < len && s[i].isSpace()) ++i;
37 if (i < len && s[i] ==
'-') sign = -1;
45 double d = c.digitValue();
48 for (
int p = dp; p > 0; --p) d /= 10.0;
56 }
else if (c ==
'.') {
76 enum { sep, unq, q1, q2 } mode = sep;
78 for (
int i = 0; i < s.length(); ++i) {
84 case sep: mode = q1;
break;
85 case unq:
case q2: tok += c;
break;
86 case q1: mode = sep; tokens << tok; tok =
"";
break;
89 }
else if (c ==
'"') {
91 case sep: mode = q2;
break;
92 case unq:
case q1: tok += c;
break;
93 case q2: mode = sep; tokens << tok; tok =
"";
break;
96 }
else if (c == separator || (separator ==
' ' && c.isSpace())) {
98 case sep:
if (separator !=
' ') tokens <<
"";
break;
99 case unq: mode = sep; tokens << tok; tok =
"";
break;
100 case q1:
case q2: tok += c;
break;
103 }
else if (c ==
'\\') {
104 if (++i < s.length()) {
107 case sep: mode = unq; tok += c;
break;
108 case unq:
case q1:
case q2: tok += c;
break;
114 case sep: mode = unq; tok += c;
break;
115 case unq:
case q1:
case q2: tok += c;
break;
120 if (tok !=
"" || mode != sep) tokens << tok;
206 return line.split(separator,
207 separator ==
' ' ? QString::SkipEmptyParts :
208 QString::KeepEmptyParts);
static QStringList split(QString s, QChar separator, bool quoted)
Split a string at the given separator character.
static QStringList splitQuoted(QString s, QChar separator)
Split a string at the given separator character, allowing quoted sections that contain the separator.
static double stringToDoubleLocaleFree(QString s, bool *ok=0)
Convert a string to a double using basic "C"-locale syntax, i.e.