Skip to content

Commit f0f3f20

Browse files
author
g_j_m
committedNov 18, 2007

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed
 

‎src/providers/delimitedtext/qgsdelimitedtextprovider.cpp

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,16 @@ QgsDelimitedTextProvider::QgsDelimitedTextProvider(QString uri)
6060
// get the individual parameters and assign values
6161
QStringList temp = parameters.grep("delimiter=");
6262
mDelimiter = temp.size()? temp[0].mid(temp[0].find("=") + 1) : "";
63+
temp = parameters.grep("delimiterType=");
64+
mDelimiterType = temp.size()? temp[0].mid(temp[0].find("=") + 1) : "";
6365
temp = parameters.grep("xField=");
6466
QString xField = temp.size()? temp[0].mid(temp[0].find("=") + 1) : "";
6567
temp = parameters.grep("yField=");
6668
QString yField = temp.size()? temp[0].mid(temp[0].find("=") + 1) : "";
6769
// Decode the parts of the uri. Good if someone entered '=' as a delimiter, for instance.
6870
mFileName = QUrl::fromPercentEncoding(mFileName.toUtf8());
6971
mDelimiter = QUrl::fromPercentEncoding(mDelimiter.toUtf8());
70-
mDelimiterType = QUrl::fromPercentEncoding(mDelimiter.toUtf8());
72+
mDelimiterType = QUrl::fromPercentEncoding(mDelimiterType.toUtf8());
7173
xField = QUrl::fromPercentEncoding(xField.toUtf8());
7274
yField = QUrl::fromPercentEncoding(yField.toUtf8());
7375

@@ -79,10 +81,10 @@ QgsDelimitedTextProvider::QgsDelimitedTextProvider(QString uri)
7981
QgsDebugMsg("yField is: " + yField);
8082

8183
// if delimiter contains some special characters, convert them
82-
if (mDelimiterType == "plain")
83-
mDelimiter.replace("\\t", "\t"); // replace "\t" with a real tabulator
84-
else
84+
if (mDelimiterType == "regexp")
8585
mDelimiterRegexp = QRegExp(mDelimiter);
86+
else
87+
mDelimiter.replace("\\t", "\t"); // replace "\t" with a real tabulator
8688

8789
// Set the selection rectangle to null
8890
mSelectionRectangle = QgsRect();
@@ -138,10 +140,10 @@ QgsDelimitedTextProvider::QgsDelimitedTextProvider(QString uri)
138140
QgsDebugMsg("Attempting to split the input line: " + line + " using delimiter " + mDelimiter);
139141

140142
QStringList fieldList;
141-
if (mDelimiterType == "plain")
142-
fieldList = QStringList::split(mDelimiter, line, true);
143-
else
143+
if (mDelimiterType == "regexp")
144144
fieldList = line.split(mDelimiterRegexp);
145+
else
146+
fieldList = line.split(mDelimiter);
145147
QgsDebugMsg("Split line into " + QString::number(fieldList.size()) + " parts");
146148

147149
// We don't know anything about a text based field other
@@ -184,10 +186,10 @@ QgsDelimitedTextProvider::QgsDelimitedTextProvider(QString uri)
184186

185187
// split the line on the delimiter
186188
QStringList parts;
187-
if (mDelimiterType == "plain")
188-
parts = QStringList::split(mDelimiter, line, true);
189-
else
189+
if (mDelimiterType == "regexp")
190190
parts = line.split(mDelimiterRegexp);
191+
else
192+
parts = line.split(mDelimiter);
191193

192194
// Skip malformed lines silently. Report line number with getNextFeature()
193195
if (attributeFields.size() != parts.size())
@@ -292,10 +294,10 @@ bool QgsDelimitedTextProvider::getNextFeature(QgsFeature& feature)
292294

293295
// lex the tokens from the current data line
294296
QStringList tokens;
295-
if (mDelimiterType == "plain")
296-
tokens = QStringList::split(mDelimiter, line, true);
297-
else
297+
if (mDelimiterType == "regexp")
298298
tokens = line.split(mDelimiterRegexp);
299+
else
300+
tokens = line.split(mDelimiter);
299301

300302
bool xOk = false;
301303
bool yOk = false;

0 commit comments

Comments
 (0)
Please sign in to comment.