[NTG-context] expand date from CSV file

Jaroslav Hajtmar hajtmar at gyza.cz
Thu Dec 18 09:39:23 CET 2014


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



More information about the ntg-context mailing list