Human-friendly links
[GPXSee.git] / src / csvparser.cpp
blob9987646d5090a437c3c67bd7ab5464d44dca7553
1 #include "csvparser.h"
3 bool CSVParser::loadFile(QFile *file)
5 bool res;
7 _errorLine = 1;
8 _errorString.clear();
10 while (!file->atEnd()) {
11 QByteArray line = file->readLine();
12 QList<QByteArray> list = line.split(',');
13 if (list.size() < 3) {
14 _errorString = "Parse error";
15 return false;
18 qreal lat = list[0].trimmed().toDouble(&res);
19 if (!res || (lat < -90.0 || lat > 90.0)) {
20 _errorString = "Invalid latitude";
21 return false;
23 qreal lon = list[1].trimmed().toDouble(&res);
24 if (!res || (lon < -180.0 || lon > 180.0)) {
25 _errorString = "Invalid longitude";
26 return false;
28 Waypoint wp(Coordinates(lon, lat));
30 QByteArray ba = list[2].trimmed();
31 QString name = QString::fromUtf8(ba.data(), ba.size());
32 wp.setName(name);
34 if (list.size() > 3) {
35 ba = list[3].trimmed();
36 wp.setDescription(QString::fromUtf8(ba.data(), ba.size()));
39 _waypoints.append(wp);
40 _errorLine++;
43 return true;