wxString **parsedvals, size_t *curcolnr, wxFileOffset *rsval, wxString *linedata)\r
{\r
wxASSERT(csvdata[*parsedoffset]);\r
-\r
+/*\r
if (csvdata[*parsedoffset]==LF)\r
{\r
*rsval = ++(*parsedoffset);\r
return parsedvals;\r
}\r
}\r
-\r
+*/\r
int curvallen = 0;\r
wxString *curval = NULL;\r
\r
{\r
wxASSERT(csvdata[*parsedoffset]);\r
\r
- if ((m_forcelinebreak || !(*inquotedblk)) && csvdata[*parsedoffset]==LF)\r
- {\r
- *inquotedblk = false;\r
- *incolparsing = false;\r
- *rsval = ++(*parsedoffset);\r
- *filelinenum++;\r
- if (!parsedvals)\r
- {\r
- parsedvals = new wxString *[1];\r
- parsedvals[0] = NULL;\r
- }\r
- return parsedvals;\r
- }\r
- else if ((m_forcelinebreak || !(*inquotedblk)) && csvdata[*parsedoffset]==CR)\r
- {\r
- if (csvdata[(*parsedoffset)+1] || !hasmore)\r
- {\r
- (*parsedoffset)++;\r
- if (csvdata[*parsedoffset]==LF)\r
- (*parsedoffset)++;\r
-\r
- *inquotedblk = false;\r
- *incolparsing = false;\r
- *rsval = *parsedoffset;\r
- *filelinenum++;\r
- if (!parsedvals)\r
- {\r
- parsedvals = new wxString *[1];\r
- parsedvals[0] = NULL;\r
- }\r
- return parsedvals;\r
- }\r
- else\r
- {\r
- *rsval = wxInvalidOffset;\r
- return parsedvals;\r
- }\r
- }\r
-\r
wxString **parsedarr = parsedvals, **tmparr;\r
wxString *colval = NULL;\r
if (parsedvals && *incolparsing)\r
colval = parsedvals[*curcolnr];\r
\r
- wxChar tmpchr;\r
while (csvdata[*parsedoffset])\r
{\r
- tmpchr = csvdata[*parsedoffset];\r
if (csvdata[*parsedoffset]==LF)\r
{\r
if (m_forcelinebreak || !(*inquotedblk))\r
{\r
- *inquotedblk = false;\r
(*parsedoffset)++;\r
- *filelinenum++;\r
+ (*filelinenum)++;\r
+ if (!colval)\r
+ colval = new wxString;\r
if (parsedarr)\r
{\r
- if (!(*incolparsing))\r
+ if (*incolparsing)\r
+ *incolparsing = false;\r
+ else\r
{\r
tmparr = parsedarr;\r
parsedarr = new wxString *[(*curcolnr)+2];\r
memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
delete []tmparr;\r
(*curcolnr)++;\r
+ parsedarr[*curcolnr] = colval;\r
}\r
}\r
else\r
{\r
parsedarr = new wxString *[1];\r
*curcolnr = (size_t)0;\r
+ parsedarr[*curcolnr] = colval;\r
}\r
- parsedarr[*curcolnr] = colval;\r
- *incolparsing = false;\r
+ *inquotedblk = false;\r
*rsval = *parsedoffset;\r
return parsedarr;\r
}\r
}\r
else if (csvdata[*parsedoffset]==CR)\r
{\r
- if (csvdata[(*parsedoffset)+1] || (!csvdata[(*parsedoffset)+1] && !hasmore))\r
+ if (csvdata[(*parsedoffset)+1] || !hasmore)\r
{\r
*filelinenum++;\r
\r
if (csvdata[*parsedoffset]==LF)\r
(*parsedoffset)++;\r
\r
+ if (!colval)\r
+ colval = new wxString;\r
if (parsedarr)\r
{\r
- if (!(*incolparsing))\r
+ if (*incolparsing)\r
+ *incolparsing = false;\r
+ else\r
{\r
tmparr = parsedarr;\r
parsedarr = new wxString *[(*curcolnr)+2];\r
memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
delete []tmparr;\r
(*curcolnr)++;\r
+ parsedarr[*curcolnr] = colval;\r
}\r
}\r
else\r
{\r
parsedarr = new wxString *[1];\r
*curcolnr = (size_t)0;\r
+ parsedarr[*curcolnr] = colval;\r
}\r
- parsedarr[*curcolnr] = colval;\r
*inquotedblk = false;\r
- *incolparsing = false;\r
*rsval = *parsedoffset;\r
return parsedarr;\r
}\r
}\r
else\r
{\r
+ if (!colval)\r
+ colval = new wxString;\r
if (parsedarr)\r
{\r
if (!(*incolparsing))\r
memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
delete []tmparr;\r
(*curcolnr)++;\r
+ parsedarr[*curcolnr] = colval;\r
*incolparsing = true;\r
}\r
}\r
{\r
parsedarr = new wxString *[1];\r
*curcolnr = (size_t)0;\r
+ parsedarr[*curcolnr] = colval;\r
*incolparsing = true;\r
}\r
- parsedarr[*curcolnr] = colval;\r
*rsval = wxInvalidOffset;\r
return parsedvals;\r
}\r
{\r
if (linedata)\r
linedata->Append(csvdata[*parsedoffset]);\r
- if (colval)\r
+ if (!colval)\r
colval = new wxString;\r
switch (csvdata[(*parsedoffset)+1])\r
{\r
}\r
else if (hasmore)\r
{\r
- if (!(*incolparsing))\r
+ if (!colval)\r
+ colval = new wxString;\r
+ if (parsedarr)\r
{\r
- tmparr = parsedarr;\r
- parsedarr = new wxString *[(*curcolnr)+2];\r
- memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
- delete []tmparr;\r
- (*curcolnr)++;\r
+ if (!(*incolparsing))\r
+ {\r
+ tmparr = parsedarr;\r
+ parsedarr = new wxString *[(*curcolnr)+2];\r
+ memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
+ delete []tmparr;\r
+ (*curcolnr)++;\r
+ parsedarr[*curcolnr] = colval;\r
+ *incolparsing = true;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ parsedarr = new wxString *[1];\r
+ *curcolnr = (size_t)0;\r
+ parsedarr[*curcolnr] = colval;\r
*incolparsing = true;\r
}\r
- parsedarr[*curcolnr] = colval;\r
*rsval = wxInvalidOffset;\r
return parsedarr;\r
}\r
else\r
{\r
- if (!(*incolparsing))\r
- {\r
- tmparr = parsedarr;\r
- parsedarr = new wxString *[(*curcolnr)+2];\r
- memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
- delete []tmparr;\r
- (*curcolnr)++;\r
- }\r
- parsedarr[*curcolnr] = colval;\r
- *filelinenum++;\r
+ if (linedata)\r
+ linedata->Append(csvdata[*parsedoffset]);\r
+ if (!colval)\r
+ colval = new wxString;\r
+ colval->Append(csvdata[*parsedoffset]);\r
(*parsedoffset)++;\r
- *inquotedblk = false;\r
- *incolparsing = false;\r
- *rsval = *parsedoffset;\r
- return parsedarr;\r
}\r
}\r
- else if (m_quotedby && *inquotedblk)\r
+ else if (m_quotedby && (*inquotedblk))\r
{\r
if (csvdata[*parsedoffset]==m_quotedby)\r
{\r
{\r
if (linedata)\r
linedata->Append(csvdata[*parsedoffset]);\r
+ if (!colval)\r
+ colval = new wxString;\r
colval->Append(csvdata[*parsedoffset]);\r
(*parsedoffset)++;\r
}\r
else\r
*inquotedblk = false;\r
}\r
- else\r
+ else if (hasmore)\r
{\r
+ if (!colval)\r
+ colval = new wxString;\r
if (parsedarr)\r
{\r
if (!(*incolparsing))\r
delete []tmparr;\r
(*curcolnr)++;\r
*incolparsing = true;\r
+ parsedarr[*curcolnr] = colval;\r
}\r
}\r
else\r
{\r
parsedarr = new wxString *[1];\r
*curcolnr = (size_t)0;\r
+ *incolparsing = true;\r
+ parsedarr[*curcolnr] = colval;\r
}\r
- parsedarr[*curcolnr] = colval;\r
*rsval = wxInvalidOffset;\r
return parsedarr;\r
}\r
+ else\r
+ {\r
+ if (linedata)\r
+ linedata->Append(csvdata[*parsedoffset]);\r
+ (*parsedoffset)++;\r
+ *inquotedblk = false;\r
+ }\r
}\r
else\r
{\r
(*parsedoffset)++;\r
}\r
}\r
- else\r
+ else if (m_quotedby && csvdata[*parsedoffset]==m_quotedby)\r
{\r
- if (m_quotedby && csvdata[*parsedoffset]==m_quotedby)\r
+ if (csvdata[(*parsedoffset)+1]==m_quotedby)\r
{\r
- if (linedata)\r
- linedata->Append(csvdata[*parsedoffset]);\r
-\r
- if (csvdata[(*parsedoffset)+1]==m_quotedby)\r
+ if (csvdata[(*parsedoffset)+2])\r
{\r
- if (csvdata[(*parsedoffset)+2])\r
+ if (m_chardlmvals && csvdata[(*parsedoffset)+2]==m_chardlmvals[0])\r
{\r
- if (m_chardlmvals && csvdata[(*parsedoffset)+2]==m_chardlmvals[0])\r
+ size_t dlmidx = (size_t)1;\r
+ while (m_chardlmvals[dlmidx])\r
{\r
- size_t dlmidx = (size_t)1;\r
- while (m_chardlmvals[dlmidx])\r
- {\r
- if (csvdata[(*parsedoffset)+dlmidx+2]!=m_chardlmvals[dlmidx])\r
- break;\r
- dlmidx++;\r
- }\r
- if (m_chardlmvals[dlmidx])\r
+ if (csvdata[(*parsedoffset)+dlmidx+2]!=m_chardlmvals[dlmidx])\r
+ break;\r
+ dlmidx++;\r
+ }\r
+ if (m_chardlmvals[dlmidx])\r
+ {\r
+ if (csvdata[(*parsedoffset)+dlmidx+2])\r
{\r
- if (csvdata[(*parsedoffset)+dlmidx+2])\r
+ if (linedata)\r
+ linedata->Append(csvdata[*parsedoffset], 2);\r
+ if (!colval)\r
+ colval = new wxString;\r
+ colval->Append(csvdata[*parsedoffset]);\r
+ (*parsedoffset)++;\r
+ (*parsedoffset)++;\r
+ while (dlmidx--)\r
{\r
if (linedata)\r
- linedata->Append(csvdata[*parsedoffset]).Append(csvdata[(*parsedoffset)+1]);\r
- if (!colval)\r
- colval = new wxString;\r
+ linedata->Append(csvdata[*parsedoffset]);\r
colval->Append(csvdata[*parsedoffset]);\r
(*parsedoffset)++;\r
- (*parsedoffset)++;\r
- while (dlmidx--)\r
+ }\r
+ }\r
+ else if (hasmore)\r
+ {\r
+ if (!colval)\r
+ colval = new wxString;\r
+ if (parsedarr)\r
+ {\r
+ if (!(*incolparsing))\r
{\r
- if (linedata)\r
- linedata->Append(csvdata[*parsedoffset]);\r
- colval->Append(csvdata[(*parsedoffset)++]);\r
+ tmparr = parsedarr;\r
+ parsedarr = new wxString *[(*curcolnr)+2];\r
+ memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
+ delete []tmparr;\r
+ (*curcolnr)++;\r
+ parsedarr[*curcolnr] = colval;\r
+ *incolparsing = true;\r
}\r
}\r
else\r
{\r
- if (parsedarr)\r
- {\r
- if (!(*incolparsing))\r
- {\r
- tmparr = parsedarr;\r
- parsedarr = new wxString *[(*curcolnr)+2];\r
- memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
- delete []tmparr;\r
- (*curcolnr)++;\r
- *incolparsing = true;\r
- }\r
- }\r
- else\r
- {\r
- parsedarr = new wxString *[1];\r
- *curcolnr = (size_t)0;\r
- }\r
+ parsedarr = new wxString *[1];\r
+ *curcolnr = (size_t)0;\r
parsedarr[*curcolnr] = colval;\r
- if (hasmore)\r
- *rsval = wxInvalidOffset;\r
- else\r
- {\r
- *parsedoffset += dlmidx + 2;\r
- *rsval = *parsedoffset;\r
- }\r
- return parsedarr;\r
+ *incolparsing = true;\r
}\r
+ *rsval = wxInvalidOffset;\r
+\r
+ return parsedarr;\r
}\r
else\r
{\r
- if (colval)\r
- colval->Append(csvdata[*parsedoffset]);\r
- else\r
+ if (linedata)\r
+ linedata->Append(csvdata[*parsedoffset], 2);\r
+ if (!colval)\r
colval = new wxString;\r
+ colval->Append(csvdata[*parsedoffset]);\r
+ (*parsedoffset)++;\r
+ (*parsedoffset)++;\r
+ if (linedata)\r
+ linedata->Append(csvdata+(*parsedoffset));\r
+ colval->Append(csvdata+(*parsedoffset));\r
\r
if (parsedarr)\r
{\r
- if (!(*incolparsing))\r
+ if (*incolparsing)\r
+ *incolparsing = false;\r
+ else\r
{\r
tmparr = parsedarr;\r
parsedarr = new wxString *[(*curcolnr)+2];\r
memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
delete []tmparr;\r
(*curcolnr)++;\r
+ parsedarr[*curcolnr] = colval;\r
}\r
- else\r
- *incolparsing = false;\r
}\r
else\r
{\r
parsedarr = new wxString *[1];\r
*curcolnr = (size_t)0;\r
+ parsedarr[*curcolnr] = colval;\r
}\r
- parsedarr[*curcolnr] = colval;\r
- colval = NULL;\r
- *parsedoffset += dlmidx + 2;\r
- if (linedata)\r
- linedata->Append(csvdata[*parsedoffset]).Append(csvdata[(*parsedoffset)+1]);\r
+\r
+ *parsedoffset += dlmidx;\r
+ *rsval = *parsedoffset;\r
+\r
+ return parsedarr;\r
}\r
}\r
else\r
{\r
- if (linedata)\r
- linedata->Append(csvdata[*parsedoffset]).Append(csvdata[(*parsedoffset)+1]);\r
if (!colval)\r
colval = new wxString;\r
- colval->Append(csvdata[*parsedoffset]);\r
- (*parsedoffset)++;\r
- (*parsedoffset)++;\r
- }\r
- }\r
- else if (hasmore)\r
- {\r
- if (linedata)\r
- linedata->Append(csvdata[*parsedoffset]).Append(csvdata[(*parsedoffset)+1]);\r
- if (!colval)\r
- colval = new wxString;\r
- colval->Append(csvdata[*parsedoffset]);\r
- (*parsedoffset)++;\r
- (*parsedoffset)++;\r
- if (parsedarr)\r
- {\r
- if (!(*incolparsing))\r
+\r
+ if (parsedarr)\r
{\r
- tmparr = parsedarr;\r
- parsedarr = new wxString *[(*curcolnr)+2];\r
- memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
- delete []tmparr;\r
- (*curcolnr)++;\r
+ if (*incolparsing)\r
+ *incolparsing = false;\r
+ else\r
+ {\r
+ tmparr = parsedarr;\r
+ parsedarr = new wxString *[(*curcolnr)+2];\r
+ memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
+ delete []tmparr;\r
+ (*curcolnr)++;\r
+ parsedarr[*curcolnr] = colval;\r
+ }\r
}\r
+ else\r
+ {\r
+ parsedarr = new wxString *[1];\r
+ *curcolnr = (size_t)0;\r
+ parsedarr[*curcolnr] = colval;\r
+ }\r
+ colval = NULL;\r
+ if (linedata)\r
+ {\r
+ linedata->Append(csvdata[*parsedoffset], 2);\r
+ linedata->Append(m_chardlmvals);\r
+ }\r
+ *parsedoffset += dlmidx + 2;\r
}\r
- else\r
- {\r
- parsedarr = new wxString *[1];\r
- *curcolnr = (size_t)0;\r
- }\r
- *incolparsing = true;\r
- parsedarr[*curcolnr] = colval;\r
- *rsval = wxInvalidOffset;\r
- return parsedarr;\r
}\r
else\r
{\r
if (linedata)\r
- linedata->Append(csvdata[*parsedoffset]).Append(csvdata[(*parsedoffset)+1]);\r
+ linedata->Append(csvdata[*parsedoffset], 2);\r
if (!colval)\r
colval = new wxString;\r
colval->Append(csvdata[*parsedoffset]);\r
(*parsedoffset)++;\r
(*parsedoffset)++;\r
- if (parsedarr)\r
- {\r
- if (!(*incolparsing))\r
- {\r
- tmparr = parsedarr;\r
- parsedarr = new wxString *[(*curcolnr)+2];\r
- memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
- delete []tmparr;\r
- (*curcolnr)++;\r
- }\r
- }\r
- else\r
- {\r
- parsedarr = new wxString *[1];\r
- *curcolnr = (size_t)0;\r
- }\r
- *incolparsing = false;\r
- parsedarr[*curcolnr] = colval;\r
- *rsval = *parsedoffset;\r
- return parsedarr;\r
}\r
}\r
- else if (csvdata[(*parsedoffset)+1])\r
- {\r
- *inquotedblk = true;\r
- (*parsedoffset)++;\r
- }\r
else if (hasmore)\r
{\r
+ if (!colval)\r
+ colval = new wxString;\r
if (parsedarr)\r
{\r
if (!(*incolparsing))\r
memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
delete []tmparr;\r
(*curcolnr)++;\r
+ parsedarr[*curcolnr] = colval;\r
*incolparsing = true;\r
}\r
}\r
{\r
parsedarr = new wxString *[1];\r
*curcolnr = (size_t)0;\r
+ parsedarr[*curcolnr] = colval;\r
+ *incolparsing = true;\r
}\r
- parsedarr[*curcolnr] = colval;\r
*rsval = wxInvalidOffset;\r
return parsedarr;\r
}\r
else\r
{\r
+ if (linedata)\r
+ linedata->Append(csvdata[*parsedoffset], 2);\r
if (!colval)\r
colval = new wxString;\r
colval->Append(csvdata[*parsedoffset]);\r
(*parsedoffset)++;\r
+ (*parsedoffset)++;\r
if (parsedarr)\r
{\r
if (!(*incolparsing))\r
memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
delete []tmparr;\r
(*curcolnr)++;\r
- *incolparsing = true;\r
+ parsedarr[*curcolnr] = colval;\r
}\r
}\r
else\r
{\r
parsedarr = new wxString *[1];\r
*curcolnr = (size_t)0;\r
+ parsedarr[*curcolnr] = colval;\r
}\r
- parsedarr[*curcolnr] = colval;\r
+ *incolparsing = false;\r
*rsval = *parsedoffset;\r
return parsedarr;\r
}\r
}\r
- else if (m_chardlmvals && csvdata[*parsedoffset]==m_chardlmvals[0])\r
+ else if (csvdata[(*parsedoffset)+1])\r
+ {\r
+ *inquotedblk = true;\r
+ (*parsedoffset)++;\r
+ }\r
+ else if (hasmore)\r
{\r
- size_t dlmidx = (size_t)1;\r
- while (m_chardlmvals[dlmidx])\r
+ if (!colval)\r
+ colval = new wxString;\r
+ if (parsedarr)\r
{\r
- if (csvdata[(*parsedoffset)+dlmidx]!=m_chardlmvals[dlmidx])\r
- break;\r
- dlmidx++;\r
+ if (!(*incolparsing))\r
+ {\r
+ tmparr = parsedarr;\r
+ parsedarr = new wxString *[(*curcolnr)+2];\r
+ memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
+ delete []tmparr;\r
+ (*curcolnr)++;\r
+ parsedarr[*curcolnr] = colval;\r
+ *incolparsing = true;\r
+ }\r
}\r
- if (m_chardlmvals[dlmidx])\r
+ else\r
{\r
- if (csvdata[(*parsedoffset)+dlmidx])\r
+ parsedarr = new wxString *[1];\r
+ *curcolnr = (size_t)0;\r
+ parsedarr[*curcolnr] = colval;\r
+ *incolparsing = true;\r
+ }\r
+ *rsval = wxInvalidOffset;\r
+ return parsedarr;\r
+ }\r
+ else\r
+ {\r
+ if (linedata)\r
+ linedata->Append(csvdata[*parsedoffset]);\r
+ if (!colval)\r
+ colval = new wxString;\r
+ colval->Append(csvdata[*parsedoffset]);\r
+ (*parsedoffset)++;\r
+ if (parsedarr)\r
+ {\r
+ if (*incolparsing)\r
+ *incolparsing = false;\r
+ else\r
{\r
- if (!colval)\r
- colval = new wxString;\r
- while (dlmidx--)\r
- {\r
- if (linedata)\r
- linedata->Append(csvdata[*parsedoffset]);\r
- colval->Append(csvdata[(*parsedoffset)++]);\r
- }\r
+ tmparr = parsedarr;\r
+ parsedarr = new wxString *[(*curcolnr)+2];\r
+ memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
+ delete []tmparr;\r
+ (*curcolnr)++;\r
+ parsedarr[*curcolnr] = colval;\r
}\r
- else\r
+ }\r
+ else\r
+ {\r
+ parsedarr = new wxString *[1];\r
+ *curcolnr = (size_t)0;\r
+ parsedarr[*curcolnr] = colval;\r
+ }\r
+ *rsval = *parsedoffset;\r
+ return parsedarr;\r
+ }\r
+ }\r
+ else if (m_chardlmvals && csvdata[*parsedoffset]==m_chardlmvals[0])\r
+ {\r
+ size_t dlmidx = (size_t)1;\r
+ while (m_chardlmvals[dlmidx])\r
+ {\r
+ if (csvdata[(*parsedoffset)+dlmidx]!=m_chardlmvals[dlmidx])\r
+ break;\r
+ dlmidx++;\r
+ }\r
+ if (m_chardlmvals[dlmidx])\r
+ {\r
+ if (csvdata[(*parsedoffset)+dlmidx])\r
+ {\r
+ if (!colval)\r
+ colval = new wxString;\r
+ while (dlmidx--)\r
+ {\r
+ if (linedata)\r
+ linedata->Append(csvdata[*parsedoffset]);\r
+ colval->Append(csvdata[*parsedoffset]);\r
+ (*parsedoffset)++;\r
+ }\r
+ }\r
+ else if (hasmore)\r
+ {\r
+ if (colval)\r
{\r
if (parsedarr)\r
{\r
memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
delete []tmparr;\r
(*curcolnr)++;\r
+ parsedarr[*curcolnr] = colval;\r
*incolparsing = true;\r
}\r
}\r
{\r
parsedarr = new wxString *[1];\r
*curcolnr = (size_t)0;\r
+ parsedarr[*curcolnr] = colval;\r
+ *incolparsing = true;\r
}\r
- parsedarr[*curcolnr] = colval;\r
- if (hasmore)\r
- *rsval = wxInvalidOffset;\r
- else\r
- {\r
- *parsedoffset += dlmidx;\r
- *rsval = *parsedoffset;\r
- }\r
- return parsedarr;\r
}\r
+\r
+ *rsval = wxInvalidOffset;\r
+ return parsedarr;\r
}\r
else\r
{\r
+ if (!colval)\r
+ colval = new wxString;\r
+ while (dlmidx--)\r
+ {\r
+ if (linedata)\r
+ linedata->Append(csvdata[*parsedoffset]);\r
+ colval->Append(csvdata[*parsedoffset]);\r
+ (*parsedoffset)++;\r
+ }\r
if (parsedarr)\r
{\r
if (!(*incolparsing))\r
memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
delete []tmparr;\r
(*curcolnr)++;\r
+ parsedarr[*curcolnr] = colval;\r
}\r
- else\r
- *incolparsing = false;\r
}\r
else\r
{\r
parsedarr = new wxString *[1];\r
*curcolnr = (size_t)0;\r
+ parsedarr[*curcolnr] = colval;\r
}\r
- parsedarr[*curcolnr] = colval;\r
- colval = NULL;\r
- *parsedoffset += dlmidx;\r
- if (linedata)\r
- linedata->Append(m_chardlmvals);\r
+\r
+ *incolparsing = false;\r
+ *rsval = *parsedoffset;\r
+ return parsedarr;\r
}\r
}\r
else\r
{\r
+ if (parsedarr)\r
+ {\r
+ if (*incolparsing)\r
+ *incolparsing = false;\r
+ else\r
+ {\r
+ tmparr = parsedarr;\r
+ parsedarr = new wxString *[(*curcolnr)+2];\r
+ memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
+ delete []tmparr;\r
+ (*curcolnr)++;\r
+ parsedarr[*curcolnr] = colval;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ parsedarr = new wxString *[1];\r
+ *curcolnr = (size_t)0;\r
+ parsedarr[*curcolnr] = colval;\r
+ }\r
+ colval = NULL;\r
+ *parsedoffset += dlmidx;\r
if (linedata)\r
- linedata->Append(csvdata[*parsedoffset]);\r
- if (!colval)\r
- colval = new wxString;\r
- colval->Append(csvdata[*parsedoffset]);\r
- (*parsedoffset)++;\r
+ linedata->Append(m_chardlmvals);\r
}\r
}\r
+ else\r
+ {\r
+ if (linedata)\r
+ linedata->Append(csvdata[*parsedoffset]);\r
+ if (!colval)\r
+ colval = new wxString;\r
+ colval->Append(csvdata[*parsedoffset]);\r
+ (*parsedoffset)++;\r
+ }\r
}\r
\r
if (parsedarr)\r
memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
delete []tmparr;\r
(*curcolnr)++;\r
+ parsedarr[*curcolnr] = colval;\r
}\r
}\r
else\r
{\r
parsedarr = new wxString *[1];\r
*curcolnr = (size_t)0;\r
+ parsedarr[*curcolnr] = colval;\r
}\r
- parsedarr[*curcolnr] = colval;\r
- *incolparsing = true;\r
- *rsval = wxInvalidOffset;\r
+\r
+ if (hasmore)\r
+ {\r
+ *rsval = wxInvalidOffset;\r
+ *incolparsing = true;\r
+ }\r
+ else\r
+ {\r
+ *rsval = *parsedoffset;\r
+ *incolparsing = false;\r
+ }\r
+\r
return parsedarr;\r
}\r
\r