def
number = /\W+
(
\d+
)
/
def
eintraege =
[
]
new
File
(
'weather.dat'
)
.
text
.
eachMatch
(
/
(
?m
)
^$
{
number *
3
}
.
*
/
)
{
all, tag,
max
,
min
->
def
spread =
max
.
toInteger
(
)
-
min
.
toInteger
(
)
eintraege
<<
[
tag:tag, spread:spread,
min
:
min
,
max
:
max
]
}
eintraege
.
sort
{
it.
spread
}
.
each
{
println
it.
collect
{
def
label = format
(
it.
key
)
def
wert = it.
value
.
toString
(
)
.
padLeft
(
3
)
"$label:$wert "
}
.
join
(
)
}
def
format
(
label
)
{
label
[
0
]
.
toUpperCase
(
)
+ label
[
1
..
-1
]
}