On Sun, Jun 06, 2010 at 01:35:23AM +0200, Jaroslav Hajtmar wrote: > Hi, > > I am sending examples of functions: > > The first function is functional in ConTeXt MKIV even LuaLaTeX. > > -- Global variables for setup in library (it be used when glob. vars > Sep, Ld, Rd is not setting in main aplication): > UserCSVSeparator=';' > UserCSVLeftDelimiter='' > UserCSVRightDelimiter='' > > > > > function ParseCSVdata(s) > local Sep = (Sep == nil) and UserCSVSeparator or Sep > local Ld = (Ld == nil) and UserCSVLeftDelimiter or Ld > local Rd = (Rd == nil) and UserCSVRightDelimiter or Rd > if Ld ~= '' or Rd ~= '' then > local s=string.sub(s, string.find(s, Ld)+1, string.find(s, > Rd,-1)-1) > end > local fieldsep=tostring(Rd..Sep..Ld) > local result = {} > local from = 1 > local sep_from, sep_to = string.find( s, fieldsep, from ) > while sep_from do > table.insert( result, string.sub( s, from , sep_from-1 ) ) > from = sep_to + 1 > sep_from, sep_to = string.find( s, fieldsep, from ) > end > table.insert( result, string.sub( s, from ) ) > return result > end > > > The second is more universal, but it only works in ConTeXt MKIV. > LuaLaTeX report error: "attempt to call field 'split' (a nil value) ... ." > > function ParseCSVdata(string2parse, separator, leftdelimiter, > rightdelimiter) > Sep = (Sep == nil) and UserCSVSeparator or Sep > Ld = (Ld == nil) and UserCSVLeftDelimiter or Ld > Rd = (Rd == nil) and UserCSVRightDelimiter or Rd > local separator = (separator == nil) and Sep or separator > local leftdelimiter = (leftdelimiter == nil) and Ld or leftdelimiter > local rightdelimiter = (rightdelimiter == nil) and Rd or rightdelimiter > local result={} > if leftdelimiter ~= '' and rightdelimiter ~= '' then > string.gsub(string2parse, > leftdelimiter.."(.-)"..rightdelimiter, function(a) > table.insert(result,a) end ) > else > result=string.split(string2parse,separator) > end > return result > end > > > I would like to benefit from the second function, but I want the > application was applicable even LuaLaTeX
You need the lualibs package, which imports some of the extended lua librarires from ConTeXt, since string.split() is not a standad lua function. Regards, Khaled > > Thanx Jaroslav > > > > > Dne 5.6.2010 22:19, Jaroslav Hajtmar napsal(a): > >Hi, > >I did a Lua application for ConTeXt, and now I wanted to adapt it > >to work even LuaLaTeX. > >On what needs to be careful? Compiling by LuaLaTeX specific > >messages appear as if the Lua in LuaLaTeX didnt know some Lua > >commands (i.e. split, find .... ). > > > >On what needs to be careful generaly when programming applications > >for LuaLaTeX? > > > >Thanx Jaroslav > >___________________________________________________________________________________ > > > >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 > ___________________________________________________________________________________ -- Khaled Hosny Arabic localiser and member of Arabeyes.org team Free font developer ___________________________________________________________________________________ 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 ___________________________________________________________________________________