23 #include <QStringList> 24 #include <QTextStream> 54 if (!file.exists())
return;
55 if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
57 QTextStream in(&file);
66 QString chunk = in.readLine();
67 QStringList lines = chunk.split(
'\r', QString::SkipEmptyParts);
69 for (
int li = 0; li < lines.size(); ++li) {
71 QString line = lines[li];
72 if (line.startsWith(
"#") || line ==
"")
continue;
79 if (lineno >= 50)
break;
88 char candidates[] = {
',',
'\t',
' ',
'|',
'/',
':' };
89 for (
int i = 0; i < int(
sizeof(candidates)/
sizeof(candidates[0])); ++i) {
105 int cols = list.size();
115 for (
int i = 0; i < cols; ++i) {
137 value = s.toFloat(&ok);
142 if (lineno < 2 && value > 1000.f) large =
true;
151 if (s.contains(
'.') || s.contains(
',')) {
192 int timingColumnCount = 0;
197 bool primary = (i == 0);
206 bool timingColumn = (numeric && increasing);
218 if (integral && large) {
248 if (valueCount == 2 && timingColumnCount == 1) {
279 if (timingColumnCount > 1) {
282 if (valueCount == 0) {
284 }
else if (valueCount == 1) {
static QStringList split(QString s, QChar separator, bool quoted)
Split a string at the given separator character.
static double stringToDoubleLocaleFree(QString s, bool *ok=0)
Convert a string to a double using basic "C"-locale syntax, i.e.