[Jprogramming] [Jchat] Dynamic currency conversion
Ian Clark
earthspotty at googlemail.com
Fri May 7 14:09:10 HKT 2010
Here's my take on a currency conversion table from Björn's URL.
It uses Oleg's httpget.ijs to snatch data from the European Central
Bank website.
--BTW: the website in question has a seriously annoying robot face in
the top right corner. :-)
NB. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
NB. Source of exchange rate data...
URL=: 'http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html'
require 'strings' NB. for: rplc
load '~user/httpget.ijs' NB. http://www.jsoftware.com/jwiki/Scripts/HTTP%20Get
detag=: monad define NB. strip out html tags
z=: -. +/\(y='<')-(y='>')
(z#y)-.'>'
)
deLF=: #~ (+. (1: |. (> </\)))@(LF&~:) NB. c/f deb with LF not ' '
u2b=: [: <;._1 LF , ] NB. (LF-sep)-->boxed
threes=: 3 : '((<.3%~$y),3)$y' NB. reshape: 3-cols
currencytable=: monad define
NB. extracts currency table from html source str: y
z=. (('<tbody>' E. z)i. 1) }. z=.y
z=. (('</tbody>' E. z)i. 1) {. z
z=. (deLF detag z)-.TAB
z=. z rplc ' ' ; '' ; (LF,' ') ; ''
z=. threes }. u2b z
)
exrate=: dyad define
NB. the euro rate-of-exchange for a given currency
NB. x is currency code, eg 'USD' or 'GBP'
NB. y is table as returned by: currencytable
z=. (0{"1 y)-.each ' ' NB. table key col (deblanked)
z=. z i. <x NB. find first instance of x
_".>(<z,2){y NB. return corresp numeral in col 2
)
] z=: currencytable httpget URL
] 'GBP' exrate z
NB. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Fn: currencytable gives a table like this:
┌────┬───────────────────────┬─────────┐
│USD │US dollar │1.2727 │
├────┼───────────────────────┼─────────┤
│JPY │Japanese yen │119.34 │
├────┼───────────────────────┼─────────┤
│BGN │Bulgarian lev │1.9558 │
...
Who can see how to improve on my code?
Ian
On Fri, May 7, 2010 at 4:14 AM, Ian Clark <earthspotty at googlemail.com> wrote:
> Thanks Björn.
>
> European Central Bank... why didn't I think of that?
>
> The format of the html looks nice'n'easy. I'll have fun writing a
> utility to snatch the figures from it (Needed for TABULA).
>
> Ian
>
>
> 2010/5/7 Björn Helgason <gosinn at gmail.com>:
>> http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html
>>
>> 2010/5/7 Ian Clark <earthspotty at googlemail.com>:
>>> Does anyone do on-line currency conversion in J?
>>>
>>> Can somebody recommend a web-page where I can download conversion
>>> factors for major currencies (without subscribing to a service)? Daily
>>> updates will do.
>>>
>>> I'd use www.xe.com, but the tabular format is a bit cumbersome (though
>>> not unmanageable). Surely simpler formats like csv are available?
>>>
>>> Ian
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>
>>
>>
>>
>> --
>> Björn Helgason, Verkfræðingur
>> Fornustekkum II
>> 781 Hornafirði,
>> t-póst: gosinn at gmail.com
>> gsm: +3546985532
>> sími: +3544781286
>> http://groups.google.com/group/J-Programming
>>
>>
>> Tæknikunnátta höndlar hið flókna, sköpunargáfa er meistari einfaldleikans
>>
>> góður kennari getur stigið á tær án þess að glansinn fari af skónum
>> /|_ .-----------------------------------.
>> ,' .\ / | Með léttri lund verður |
>> ,--' _,' | Dagurinn í dag |
>> / / | Enn betri en gærdagurinn |
>> ( -. | `-----------------------------------'
>> | ) | (\_ _/)
>> (`-. '--.) (='.'=) ♖♘♗♕♔♙
>> `. )----' (")_(") ☃☠
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>
More information about the Programming
mailing list