Re: En programmeringsövning orsakad av xml
test.pl
#!/usr/bin/perl
while(<>) {
chomp(@NN=split(/\|/));
print <<EOF;
<lager avd="$NN[1]">
<vara>$NN[0]<antal>$NN[2]</antal>
</vara>
</lager>
EOF
}
test.txt
ETTAN|TVAN|TREAN|FYRAN
1ETTAN|1TVAN|1TREAN|1FYRAN
#test.pl test.txt
<lager avd="TVAN">
<vara>ETTAN<antal>TREAN</antal>
</vara>
</lager>
<lager avd="1TVAN">
<vara>1ETTAN<antal>1TREAN</antal>
</vara>
</lager>
/markus
UUCP because I care
Mats Erik Andersson wrote:
> Bästa debianiter!
>
> Låt mig föreslå en utmaning i programmering för
> allas
> vår fortbildning. Ju fler metoder eller språk som
> kommer till nytta, desto bättre utdelning:
>
> Målsättningen är att av en förenklad fältlista åstad-
> komma xml-poster enligt en xml-mall. Denna fältlista
> skall bestå av rader enligt
>
> text|text|text|text|....
>
> där tecknen <>/ måste tillåtas för att uppnå
>
> abb<sidoform>dkk</sidoform>| jj ss |fkkrl.
>
> Å andra sidan skall xml-mallen byggas upp som
>
> <lager avd="$2">
> <vara>$1<antal>$3</antal>
> </vara>
> </lager>
>
> där $nn anger vilket fält i inmatningsraden som
> skall in på denna plats. Det är viktigt att både
> inmatning och xml-mall skall kunna innehålla god-
> tyckliga mellanslag utan att dessa fördärvas.
> Ett fördel vore om lodstrecket i inmatningen
> kan förändras allt efter eget tycke.
> Efter viss möda skrev jag samman en bash-snutt
> med hjälp av 'sed' och 'eval' för att åstadkomma
> min lösning. Jag vill inte fördärva Ert nöje, så
> jag håller inne med min bash-fil intill dess att
> någon nappar på utmaningen.
>
> Väl mött i kampen
>
> Mats Erik Andersson
>
>
>
Reply to: