#include "csvparser.h" bool CSVParser::loadFile(QFile *file) { bool res; int ln = 1; _errorLine = 0; _errorString.clear(); while (!file->atEnd()) { QByteArray line = file->readLine(); QList list = line.split(','); if (list.size() < 3) { _errorString = "Parse error."; _errorLine = ln; return false; } qreal lat = list[0].trimmed().toDouble(&res); if (!res || (lat < -90.0 || lat > 90.0)) { _errorString = "Invalid latitude."; _errorLine = ln; return false; } qreal lon = list[1].trimmed().toDouble(&res); if (!res || (lon < -180.0 || lon > 180.0)) { _errorString = "Invalid longitude."; _errorLine = ln; return false; } Waypoint wp(Coordinates(lon, lat)); QByteArray ba = list[2].trimmed(); QString name = QString::fromUtf8(ba.data(), ba.size()); wp.setName(name); if (list.size() > 3) { ba = list[3].trimmed(); wp.setDescription(QString::fromUtf8(ba.data(), ba.size())); } _waypoints.append(wp); ln++; } return true; }