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
___________________________________________________________________________________
next prev 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).