projects
/
jspeed
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
...
[jspeed]
/
src
/
poiascreader.cpp
diff --git
a/src/poiascreader.cpp
b/src/poiascreader.cpp
index
0b44e7f
..
2d01f6f
100644
(file)
--- a/
src/poiascreader.cpp
+++ b/
src/poiascreader.cpp
@@
-19,6
+19,7
@@
#include <QtCore/QFile>
#include <QtCore/QString>
#include <QtCore/QByteArray>
#include <QtCore/QFile>
#include <QtCore/QString>
#include <QtCore/QByteArray>
+#include <QtCore/QStringList>
#include <QtCore/QDebug>
#include <QtCore/QRegExp>
#include "poiascreader.h"
#include <QtCore/QDebug>
#include <QtCore/QRegExp>
#include "poiascreader.h"
@@
-29,6
+30,8
@@
PoiAscReader::PoiAscReader(QString filename): PoiReader(), filename_(filename)
bool PoiAscReader::read(QList<Poi>& pois)
{
bool PoiAscReader::read(QList<Poi>& pois)
{
+ pois.clear();
+
QFile file(filename_);
if(!file.open(QIODevice::ReadOnly))
QFile file(filename_);
if(!file.open(QIODevice::ReadOnly))
@@
-37,22
+40,20
@@
bool PoiAscReader::read(QList<Poi>& pois)
return false;
}
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);
double doubleLatitude = latitude.toDouble(&ok);
@@
-68,9
+69,13
@@
bool PoiAscReader::read(QList<Poi>& pois)
continue;
}
continue;
}
+ QString name = parts.at(2).trimmed();
+ name.remove('"');
+
+ Poi poi;
poi.latitude = doubleLatitude;
poi.longitude = doubleLongitude;
poi.latitude = doubleLatitude;
poi.longitude = doubleLongitude;
- poi.name = matcher.cap(5);
+ poi.name = name;
pois.push_back(poi);
pois.push_back(poi);