Page 1 of 1

dc_csv2array()

Posted: Tue Sep 13, 2016 4:41 am
by reganc
Roger

This function only looks for linefeeds as line breaks.

If the lines end with carriage return + linefeeds, the carriage return ends up on the end of the last field read.

Are lines in CSV files supposed to only use LF as a line break and not CRLF?

Re: dc_csv2array()

Posted: Tue Sep 13, 2016 6:21 am
by rdonnay
I think I found out that some CSV files don't have CR characters.

Give this a try to see if it solves your problem.

Code: Select all

cCsvFile := Strtran(cCsvFile,Chr(13),'')

aCsv := DC_Csv2Array(cCsvFile)

Re: dc_csv2array()

Posted: Wed Sep 14, 2016 5:07 am
by reganc
rdonnay wrote:I think I found out that some CSV files don't have CR characters.

Give this a try to see if it solves your problem.

Code: Select all

cCsvFile := Strtran(cCsvFile,Chr(13),'')

aCsv := DC_Csv2Array(cCsvFile)
Hmm... The CR is not in the filename... :-)

I took a copy of the function code and added a line that does that. So my code is OK.

But I thought maybe you could add something like this after the dc_txtline is called:

Code: Select all

if right(cLine,1) == chr(13)
   cLine:=left(cLine,len(cLine)-1)
endif
as a general fix for this? And you could maybe add a 2nd parameter to control it's usage...