On 12/18/2014 01:24 PM, Jaroslav Hajtmar wrote:
> Hi Pablo,
> I am sending still slightly modified version (use local variables and 
> better typographic output).
> It use of much variables, but at least it is clear how it works. For 
> solution occurred me to use parsing function that I have been defined in 
> the library, so that it can be successfully used.

Many thanks for your reply, Jaroslav.

This is exactly what I need.

Many thanks for your help,

Pablo


> \usemodule[scancsv]
> 
> \def\ddmmyyyy#1#2#3{% #1 - date, #2 - old separator, #3 - new separator
> \startlua
>      local parsedate=thirddata.scancsv.ParseCSVLine('#1','#2');
>      local day=tonumber(parsedate[1]);
>      local month=tonumber(parsedate[2]);
>      local year=tonumber(parsedate[3]);
>      if (year<2000) then year=year+2000 end;
>      tex.print(day..'#3'..month..'#3'..year);
> \stoplua
> }
> 
> \unexpanded\def\lineaction{
>      \Name\ arrived on \ddmmyyyy{\Date}{/}{.\\,} \\
> }
> 
> 
> %     Name;Date
> %     ME;11/10/14
> %     You;05/02/14
> %     He;15/02/2014
> %     She;03/03/12
> %     It;03/03/14
> 
> \setheader
>   \setsep{;}
>   \setfiletoscan{mail.csv}
> 
> \starttext
>     \filelineaction
> \stoptext
> 
> 
> 
> 
> Dne 18.12.2014 9:39, Jaroslav Hajtmar napsal(a):
>> Hi Pablo
>>
>> Here is a quick solution. However, it not treat the incorrect input 
>> data, ie it requires, however, correct input, otherwise it will 
>> collapse ...
>>
>> Jaroslav Hajtmar
>>
>>
>>
>> \usemodule[scancsv]
>>
>> \def\ddmmyyyy#1#2#3{% #1 - date, #2 - old separator, #3 - new separator
>> \startlua
>>     parsedate=thirddata.scancsv.ParseCSVLine('#1','#2');
>>     day=tonumber(parsedate[1]);
>>     month=tonumber(parsedate[2]);
>>     year=tonumber(parsedate[3]);
>>     if (year<2000) then year=year+2000 end;
>>     tex.print(day..'#3'..month..'#3'..year);
>> \stoplua
>> }
>>
>> \unexpanded\def\lineaction{
>>     \Name\ arrived on \ddmmyyyy{\Date}{/}{.} \\
>> }
>>
>>
>> %     Name;Date
>> %     ME;11/10/14
>> %     You;05/02/14
>> %     He;15/02/2014
>> %     She;03/03/12
>> %     It;03/03/14
>>
>> \setheader
>>  \setsep{;}
>>  \setfiletoscan{mail.csv}
>>
>> \starttext
>>    \filelineaction
>> \stoptext
>>
>>
>>
>>
>>
>> Dne 17.12.2014 22:20, Pablo Rodriguez napsal(a):
>>> Dear list,
>>>
>>> I have the following sample:
>>>
>>>      \usemodule[scancsv]
>>>
>>>      \unexpanded\def\lineaction{
>>>      \Name\ arrived on \Date\\
>>>      }
>>>
>>>      \setheader
>>>      \setsep{;}
>>>      \setfiletoscan{mail.csv}
>>>
>>>      \starttext
>>>          \filelineaction
>>>      \stoptext
>>>
>>> that reads data from mail.csv:
>>>
>>>      Name;Date
>>>      ME;11/10/14
>>>      You;05/02/14
>>>      He;15/02/2014
>>>      She;03/03/12
>>>      It;03/03/14
>>>
>>> My question is simple (and not related to CSV data import): how can I
>>> define a command (ConTeXt or Lua) that changes date format from DD/MM/YY
>>> to DD/MM/YYYY when required?
>>>
>>> Many thanks for your help,
>>>
>>>
>>> Pablo


-- 
http://www.ousia.tk
___________________________________________________________________________________
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