ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Pablo Rodriguez <oinos@gmx.es>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: expand date from CSV file
Date: Thu, 18 Dec 2014 19:07:33 +0100	[thread overview]
Message-ID: <549317E5.9070807@gmx.es> (raw)
In-Reply-To: <5492C78D.7090903@gyza.cz>

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
___________________________________________________________________________________

  parent reply	other threads:[~2014-12-18 18:07 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-17 21:20 Pablo Rodriguez
2014-12-18  8:39 ` Jaroslav Hajtmar
2014-12-18 12:24   ` Jaroslav Hajtmar
2014-12-18 12:37     ` Peter Münster
2014-12-18 18:09       ` Pablo Rodriguez
2014-12-20  6:40       ` Jaroslav Hajtmar
2014-12-18 18:07     ` Pablo Rodriguez [this message]
2014-12-19  2:07       ` Jaroslav Hajtmar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=549317E5.9070807@gmx.es \
    --to=oinos@gmx.es \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).