else\r
m_pvrowsnum = rowsnum;\r
\r
- GenCSVPreview(rowsnum==(size_t)0);\r
+ GenCSVPreview(m_pvparsedrowsnum==(size_t)0);\r
}\r
\r
wxFileOffset pgCSVFile::GenMoreFilePreview(wxString *pvstr)\r
bool isfileeof = Eof(), incolparsing, inquotedblk;\r
size_t *tmpcolsnums;\r
wxString *fileline, **tmpcsvlines, **parsedvals, ***tmpcolsvals;\r
- while (isinit || m_pvparsedrowsnum<pvrowsnum)\r
+ while (m_pvparsedrowsnum<pvrowsnum)\r
{\r
curcolnr = (size_t)0;\r
filelinenum = (size_t)0;\r
{\r
if (linedata)\r
linedata->Append(csvdata[*parsedoffset]);\r
- if (csvdata[(*parsedoffset)+1])\r
+\r
+ if (csvdata[(*parsedoffset)+1]==m_quotedby)\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]).Append(csvdata[(*parsedoffset)+1]);\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
- colval->Append(csvdata[*parsedoffset]);\r
- (*parsedoffset)++;\r
- (*parsedoffset)++;\r
- while (dlmidx--)\r
- {\r
- if (linedata)\r
- linedata->Append(csvdata[*parsedoffset]);\r
- colval->Append(csvdata[(*parsedoffset)++]);\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[*curcolnr] = colval;\r
- if (hasmore)\r
- *rsval = wxInvalidOffset;\r
- else\r
- {\r
- *parsedoffset += dlmidx + 2;\r
- *rsval = *parsedoffset;\r
- }\r
- return parsedarr;\r
+ linedata->Append(csvdata[*parsedoffset]);\r
+ colval->Append(csvdata[(*parsedoffset)++]);\r
}\r
}\r
else\r
{\r
- if (colval)\r
- colval->Append(csvdata[*parsedoffset]);\r
- else\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
+ *incolparsing = true;\r
}\r
- else\r
- *incolparsing = false;\r
}\r
else\r
{\r
*curcolnr = (size_t)0;\r
}\r
parsedarr[*curcolnr] = colval;\r
- colval = NULL;\r
- parsedoffset += dlmidx + 2;\r
- if (linedata)\r
+ if (hasmore)\r
+ *rsval = wxInvalidOffset;\r
+ else\r
{\r
- linedata->Append(csvdata[*parsedoffset]).Append(csvdata[(*parsedoffset)+1]);\r
- colval->Append(m_chardlmvals);\r
+ *parsedoffset += dlmidx + 2;\r
+ *rsval = *parsedoffset;\r
}\r
+ return parsedarr;\r
}\r
}\r
else\r
{\r
+ if (colval)\r
+ colval->Append(csvdata[*parsedoffset]);\r
+ else\r
+ colval = new wxString;\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
+ }\r
+ else\r
+ *incolparsing = false;\r
+ }\r
+ else\r
+ {\r
+ parsedarr = new wxString *[1];\r
+ *curcolnr = (size_t)0;\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
- if (!colval)\r
- colval = new wxString;\r
- colval->Append(csvdata[*parsedoffset]);\r
- (*parsedoffset)++;\r
- (*parsedoffset)++;\r
}\r
}\r
- else if (hasmore)\r
+ else\r
{\r
if (linedata)\r
linedata->Append(csvdata[*parsedoffset]).Append(csvdata[(*parsedoffset)+1]);\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
+ }\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
- parsedarr = new wxString *[1];\r
- *curcolnr = (size_t)0;\r
+ tmparr = parsedarr;\r
+ parsedarr = new wxString *[(*curcolnr)+2];\r
+ memcpy(parsedarr, tmparr, sizeof(parsedarr)*((*curcolnr)+1));\r
+ delete []tmparr;\r
+ (*curcolnr)++;\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
- 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
+ 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]);\r
- *inquotedblk = true;\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
+ 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 (parsedarr)\r