Hi Hans.
Once again. It occurred to me to send a minimum Hans's example. When I compile with new beta version are the results the same for header and noheader versions, while a compilation of TL 2014 Contex proceeds differently.


Jaroslav Hajtmar

\starttext

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


\startluacode

local mycsvsplitter = utilities.parsers.rfc4180splitter()
local crap = io.loaddata("csvfile.txt")

local list, names = mycsvsplitter(crap,true)   inspect(list) inspect(names)
-- local list, names = mycsvsplitter(crap) inspect(list) inspect(names)

context.starttabulate { "|l|r|" }
for i=1,#list do
    local l = list[i]
    context.NC() context(l[1])
    context.NC() context(l[3])
    context.NC()
    context.NR()
end
context.stoptabulate()

\stopluacode

\stoptext







Dne 15. 6. 2015 v 11:00 Jaroslav Hajtmar napsal(a):
After I read my e-mail the I cut more my source code and I am sending now more minimalized version of minimal example

Sorry, Jaroslav Hajtmar


Here is another minimal version:

% 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 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)
    else
      gTableRows = mycsvsplitter(currentlyprocessedcsvfile)
      inspect(gTableRows)
    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




Dne 15. 6. 2015 v 10:45 Jaroslav Hajtmar napsal(a):
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
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to