Re: [NTG-context] Tabulator in database file not passed to Lua

2014-01-24 Thread Joshua Krämer
Am Thu, 23 Jan 2014 23:17:24 +0100
schrieb Hans Hagen pra...@wxs.nl:
 \startluacode
 
  local f = io.open(test.dat)
 
  for line in f:lines() do
  local t = string.split(line,;) -- or \t for tabs
  context(% /t,t) -- context(table.concat(t, / )
  context.par()
  end
 
 \stopluacode
 
 \stoptext

Thanks, I was not aware of the Context Lua extensions.  Should have read
the wiki more thoroughly ...

While I'm new to Lua, I already enjoy it.  It opens a whole new world
of possibilities to ConTeXt, making this great software even better!
Thank you very much for all the hard work.

Kind regards,
Joshua Krämer


___
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
___

Re: [NTG-context] Tabulator in database file not passed to Lua

2014-01-24 Thread Hans Hagen

On 1/25/2014 1:32 AM, Joshua Krämer wrote:

Am Thu, 23 Jan 2014 23:17:24 +0100
schrieb Hans Hagen pra...@wxs.nl:

\startluacode

  local f = io.open(test.dat)

  for line in f:lines() do
  local t = string.split(line,;) -- or \t for tabs
  context(% /t,t) -- context(table.concat(t, / )
  context.par()
  end

\stopluacode

\stoptext


Thanks, I was not aware of the Context Lua extensions.  Should have read
the wiki more thoroughly ...

While I'm new to Lua, I already enjoy it.  It opens a whole new world
of possibilities to ConTeXt, making this great software even better!
Thank you very much for all the hard work.


http://www.pragma-ade.nl/general/manuals/cld-mkiv.pdf

-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
 | www.pragma-pod.nl
-
___
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
___

Re: [NTG-context] Tabulator in database file not passed to Lua

2014-01-23 Thread Hans Hagen

On 1/23/2014 9:43 PM, Joshua Krämer wrote:

Dear list,

I use the database module to load the lines of a file with some
data.  The lines are then separated with a lua script.  I use lua,
because I need to do some other things with the data (rounding
numbers, combining some fields etc.)  Please consider the following
minimal working example:

\usemodule[database]
\defineseparatedlist [Data]
[
before=,
after=,
separator={},
commentchar=\letterpercent,
command=\Tabrow,
]

\startluacode
function explode(sep,str)
if (sep==) then return false end
   local pos,arr = 0,{}
   -- for each separator found
   for st,sp in function() return string.find(str,sep,pos,true) end do
 -- Attach chars left of current separator
 table.insert(arr,string.sub(str,pos,st-1))
 -- Jump past current separator
 pos = sp + 1
   end
   -- Attach chars right of last separator
   table.insert(arr,string.sub(str,pos))
return arr
end

function tabrow(fileline)
local tabarray = explode(;,fileline)
local tabline = 
for index,value in ipairs(tabarray) do
tabline = tabline ..  /  .. value
end
return tabline
end
\stopluacode

\define[1]\Tabrow{\ctxlua{context(tabrow(#1))}}

\starttext
\processseparatedfile[Data][Test.dat]
\stoptext

This is the content of the file Test.dat:
Eins;zwei;drei;vier


Of course the line separation could be done easier with the database
module.  However, I thought this way I could use the tabulator as the
separator in my file.  But when I change the separator from ; to
\\t, it doesn't work.  I suppose this is because the tabulators are
passed to Lua as spaces.  Or is \\t the wrong code?  Would it be
possible to use tabulators as separators, if I load the file with lua
and not with the database module?


\starttext

\startluacode

local f = io.open(test.dat)

for line in f:lines() do
local t = string.split(line,;) -- or \t for tabs
context(% /t,t) -- context(table.concat(t, / )
context.par()
end

\stopluacode

\stoptext


-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
 | www.pragma-pod.nl
-
___
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
___