[NTG-context] Problem with rfc4180splitter in last beta?

Jaroslav Hajtmar hajtmar at gyza.cz
Mon Jun 15 10:45:24 CEST 2015


Hi Hans,
I encountered while experimenting with the latest beta version of 
standalone context to a problem when using the splitter. When I process 
without header file then compilation crashed when you compile the latest 
beta version. Conversely, the processing of a header file is no problem. 
ConTEXt while compiling the 2014 TL is fine in both cases. I do not know 
from which beta version was a problem, I discovered it by accident until 
now. Send minimal example. When gCSVHeader = true everything is OK when 
it is gCSVHeader = false and compilation fails.


Thanx for any advice
Jaroslav Hajtmar

Here is my minimal version of problematic example:



% csvfile.txt content:
% first,second,third,fourth
% 1,"2","3","4"
% "a","b","c","d"
% "foo","bar""baz","boogie","xyzzy"
%



\starttext

\startluacode
      --gCSVHeader=true -- works fine when compiled any version of ConTeXt
      gCSVHeader=false -- crashed, when compiled by last beta version of 
standalone
      gColNames={}
      gColumnNames={}
      local inpcsvfile='csvfile.txt'
      local currentlyprocessedcsvfile = io.loaddata(inpcsvfile)
      local mycsvsplitter = utilities.parsers.rfc4180splitter{
         separator = ',',
         quote = '"',
         }
     if gCSVHeader then
      gTableRows, gColumnNames = 
mycsvsplitter(currentlyprocessedcsvfile,true)
      inspect(gTableRows)
      inspect(gColumnNames)
          for i=1,#gTableRows[1] do
             gColNames[tostring(gColumnNames[i])] = i -- for indexing use
         end
     else
       gTableRows = mycsvsplitter(currentlyprocessedcsvfile)
       inspect(gTableRows)
       -- ad now set column names for withoutheader situation:
         for i=1,#gTableRows[1] do
         context(gTableRows[i])
          gColumnNames[i]='c'..(i)
         end
     end
      gNumRows=#gTableRows -- Getting number of rows
       gNumCols=#gTableRows[1] -- Getting number of columns

      context.setgvalue("numrows",tostring(gNumRows))
      context.setgvalue("numcols",tostring(gNumCols))
      context.setgvalue("filename",tostring(inpcsvfile))
\stopluacode


File \filename\ has \numrows\ lines and \numcols\ columns.

\stoptext


More information about the ntg-context mailing list