I have a CSV parser at my blog that might interest you: https://programmingpraxis.files.wordpress.com/2013/01/textfiledatabases.pdf. It properly handles bot Unix and DOS-style line endings, and embedded quotes.
On Fri, Mar 6, 2020 at 2:00 PM Ivan Raikov <ivan.g.rai...@gmail.com> wrote: > Hi Matt, > > Thanks, I think the default line terminator is the newline character, > which would not work on files with DOS-style line endings. Could you > call the reader with option eol: "\r\n" to see if this fixes the > problem? > > -Ivan > > On Fri, Mar 6, 2020 at 11:24 AM Matt Welland <mattrwell...@gmail.com> > wrote: > > > > Thanks Ivan, I much appreciate the support. > > > > I tested 1.2 and it does solve the escaped quotes problem. I do now see > another problem. Multi-line cells cause the parser some grief. The attached > test.csv generated from Excel imports fine to gnumeric but fails with an > "unable to parse record" with tabular. > > > > On Fri, Mar 6, 2020 at 8:16 AM Ivan Raikov <ivan.g.rai...@gmail.com> > wrote: > >> > >> Hi Matt, > >> > >> Thank you for using tabular and for reporting this issue. This was > >> indeed a bug in the code that handles escaped quotes. I have fixed it > >> and have made a new release (1.2). Let me know if you run into any > >> other issues. Best regards, > >> > >> -Ivan > >> > >> On Thu, Mar 5, 2020 at 2:14 PM Matt Welland <mattrwell...@gmail.com> > wrote: > >> > > >> > It is common in csv to escape double quotes with double quotes. This > does not work in tabular and I was unable to figure out any other > mechanism. Replacing the first " with \ did not work and neither did using > single quotes around the string. Is there a built in mechanism? The csv > files in question come from Microsoft Excel but I tested with a csv from > Gnumeric and see the same problem. > >> > > >> > cat testing.csv > >> > Junk,"Joe ""Super"" Duper Guy",zsssy > >> > "More Junk",1,2 > >> > > >> > ../portit pp testing.csv > >> > > >> > Error: (list->string) bad argument type - not a character: (#\") > >> > > >> > Call history: > >> > > >> > utf8-srfi-14.scm:101: iset#iset-contains? > >> > utf8-srfi-14.scm:101: iset#iset-contains? > >> > utf8-srfi-14.scm:101: iset#iset-contains? > >> > utf8-srfi-14.scm:101: iset#iset-contains? > >> > utf8-srfi-14.scm:101: iset#iset-contains? > >> > utf8-srfi-14.scm:101: iset#iset-contains? > >> > utf8-srfi-14.scm:101: iset#iset-contains? > >> > utf8-srfi-14.scm:101: iset#iset-contains? > >> > utf8-srfi-14.scm:101: iset#iset-contains? > >> > utf8-srfi-14.scm:101: iset#iset-contains? > >> > utf8-srfi-14.scm:101: iset#iset-contains? > >> > utf8-srfi-14.scm:101: iset#iset-contains? > >> > utf8-srfi-14.scm:101: iset#iset-contains? > >> > utf8-srfi-14.scm:101: iset#iset-contains? > >> > utf8-srfi-14.scm:101: iset#iset-contains? > >> > utf8-srfi-14.scm:101: iset#iset-contains? <-- > >> > > >> > Thanks. > >> > -- > >> > Complexity is your enemy. Any fool can make something complicated. > >> > It is hard to keep things simple. - Richard Branson. > > > > > > > > -- > > -- > > Complexity is your enemy. Any fool can make something complicated. > > It is hard to keep things simple. - Richard Branson. > >