X-Git-Url: http://git.maemo.org/git/?p=jspeed;a=blobdiff_plain;f=src%2Fpoiascreader.cpp;h=2d01f6fa9d40276515628a2d46b1892a86d60774;hp=0b44e7f1702cbd2e76344f40302147eb118543bd;hb=HEAD;hpb=28cb8747756c4270e5bb6cd8585685e7ed234aef diff --git a/src/poiascreader.cpp b/src/poiascreader.cpp index 0b44e7f..2d01f6f 100644 --- a/src/poiascreader.cpp +++ b/src/poiascreader.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include "poiascreader.h" @@ -29,6 +30,8 @@ PoiAscReader::PoiAscReader(QString filename): PoiReader(), filename_(filename) bool PoiAscReader::read(QList& pois) { + pois.clear(); + QFile file(filename_); if(!file.open(QIODevice::ReadOnly)) @@ -37,22 +40,20 @@ bool PoiAscReader::read(QList& pois) return false; } - QString data = QString(file.readAll()); - static QRegExp matcher("([0-9]{1,3})\\.([0-9]+), ([0-9]{1,3})\\.([0-9]+), \"(.*)\""); - matcher.setMinimal(true); - - int pos = 0; - - while((pos = matcher.indexIn(data, pos)) != -1) + while(!file.atEnd()) { - pos += matcher.matchedLength(); + QString data(file.readLine()); + QStringList parts = data.split(","); - Poi poi; + if(parts.size() < 3) + { + continue; + } - bool ok; + QString longitude = parts.at(0).trimmed(); + QString latitude = parts.at(1).trimmed(); - QString latitude = matcher.cap(1) + "." + matcher.cap(2); - QString longitude = matcher.cap(3) + "." + matcher.cap(4); + bool ok; double doubleLatitude = latitude.toDouble(&ok); @@ -68,9 +69,13 @@ bool PoiAscReader::read(QList& pois) continue; } + QString name = parts.at(2).trimmed(); + name.remove('"'); + + Poi poi; poi.latitude = doubleLatitude; poi.longitude = doubleLongitude; - poi.name = matcher.cap(5); + poi.name = name; pois.push_back(poi);