Hallo ConTeXtist,
Thanx to Hans for his advice.
I further experimented with Mojca database module. I want get
interaction database module with my lua application which process CSV
files otherwise.
My application can list arbitrary fields from any CSV file namely in
completely arbitrary format i.e. in rows format:
field11, field13, field15, ... etc...
field21, field23, field25, ... etc...
field31, field33, field35, ... etc...
this is one of reasons why I want use Mojca database module.
Meanwhile, I too can not run it. Problem is, perhaps, that I can not
work properly with the expansion.
Perhaps I can get progressively. Here are some insights to the
functioning of the previous examples.
\usemodule[database]
\defineseparatedlist
[NaturalTable]
[separator=comma,
before=\bTABLE,after=\eTABLE,
first=\bTR,last=\eTR,
left=\bTD,right=\eTD]
\starttext
1. Normal example
\startseparatedlist[NaturalTable]
col1,col2,col3
\stopseparatedlist
2. This example with expand dont work ...
\expanded{\startseparatedlist[NaturalTable]
\ctxlua{tex.print("col1,col2,col3")}}
\stopseparatedlist
3. This example work but no output! WHY?
\startluacode
context.startseparatedlist {"NaturalTable"}
tex.print("col1,col2,col3")
context.stopseparatedlist()
\stopluacode
4. This work OK but only with adding tex.print("")
\startluacode
context.startseparatedlist { "NaturalTable" }
tex.print("") -- without this line dont work (ie without output data)
try remark it
tex.print("col1,col2,col3")
context.stopseparatedlist()
\stopluacode
5. With tex.print work but with tex.sprint fails! WHY??
\startluacode
context.startseparatedlist { "NaturalTable" }
tex.print("")
--tex.sprint("col1,col2,col3") -- Try remove remark
context.stopseparatedlist()
\stopluacode
\stoptext
Best greetings
Jaroslav
On 26-7-2010 8:36, Jaroslav Hajtmar wrote:
> Hello all,
>
> Is there any possibility use Lua commands in
> \startseparatedlist[NaturalTable] ... \stopseparatedlist environment in
> database module?
> I would like using database module im my Lua application.
> Thanx
> Jaroslav
>
> Here is mimimal example:
>
> \usemodule[database]
>
> \defineseparatedlist
> [NaturalTable]
> [separator=comma,
> before=\bTABLE,after=\eTABLE,
> first=\bTR,last=\eTR,
> left=\bTD,right=\eTD]
>
>
> \starttext
>
> \startseparatedlist[NaturalTable]
> col1,col2,col3
> \stopseparatedlist
>
> \startseparatedlist[NaturalTable]
> \directlua{tex.print("col1,col2,col3")} % here program fails
> \stopseparatedlist
>
> \stoptext
you could expand the content
\expanded{\startseparatedlist[NaturalTable]
\ctxlua{tex.print("col1,col2,col3")}}
\stopseparatedlist
or use
\startluacode
context.startseparatedlist { "NaturalTable" }
tex.print("col1,col2,col3")
context.stopseparatedlist()
\stopluacode
of course you can also do all at the lua end (reminds me that I promised
mojca to rewrite the database module)