For ikke resten af linien med
Jeg har det her perl script, som skal oversætte en tekst, med nogle simple opmærkning, til et xml format.Når scriptet når til £### skal tællerne $linieNumberBrand sættes til ###. Dette gør scriptet også, men det "æder" resten af linien. Det skal det ikke.
------------Perl script-----------------------
#!/usr/bin/perl -w
if (int(@ARGV) == 2)
{
$input = $ARGV[0];
# $tka = $ARGV[1];
# $sentil = $ARGV[2];
$output = $ARGV[1];
$lineNumberNormal = 1;
$lineNumberBrand = 1;
open (IN, $input) || die "Can't open $input: $!";
# open (TKA, $tka) || die "Can't open $tka: $!";
# open (ST, $sentil) || die "Can't open $sentil: $!";
open (OUT, ">$output") || die "Can't create $output: $!";
# open (DTD, "smn.dtd") || die "Can't open smn.dtd: $!";
# while (<DTD>)
# {
# print OUT;
# }
# close (DTD);
print OUT "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
print OUT "\n<TEI.2>";
while (<IN>)
{
if (/^\s*$/g)
{
## Fjernelse af tomme linier
s/^\s*$//g;
}# if (/^\s*$/g)
#leder efter £ og
elsif(/^\£([0-9]*)/g)
{
$lineNumberBrand = $1 -1;
}
else
{
## Udskiftning af < og > med hhv. <uforkortet> og </uforkortet>
s/\</\<forkortelse1/g;
s/\>/\<\/forkortelse\>/g;
s/forkortelse1/forkortelse\>/g;
## Udskiftning af [##] (side tæller) med </side> og <side id="##">
s/\((.*)\)(.*)/\<\/side\>\n\n\<side id\=\"$1\"\>\n\<l id=\"$lineNumberNormal\" id2=\"$lineNumberBrand\"\>$2\<\/l\>/;
## Fjernelse af den første </side> da der jo her er tale om start på dok.
s/\<\/side\>\n\<side id\=\"1r\"\>/\<side id\=\"1r\"\>/;
## Udskiftning af * og ¤ med hhv. <initial> og </initial>
s/\#/\<initial>/g;
s/\¤/\<\/initial>/g;
unless (/\<side/ || /\<\/side/)
{
chomp($_);
$_ = "\<l id=\"$lineNumberNormal\" id2=\"$lineNumberBrand\"\>" . $_ . "\</l\>\n";
}
print OUT;
}# else
$lineNumberNormal++;
$lineNumberBrand++;
}# while (<IN>)
close (IN);
print OUT "\n</TEI.2>";
close (OUT);
}
else
{
print "This script requires exactly 4 parameters. Input file, tka file, later addtion fil and output file.\n";
5 fewer lines
------------ eks txt ----------
153v)#Ie¤th * lidh<et> spel acth<e>r jech ath skriwe
th<e>r man maa tidh<e>n m<edh> for driwe
om nog<e>r vndh<e>r i fordom skieddæ
£100 i hwilken man th<et> lyst<e>r ath wedhe
for wor h<er>ræ hans fødzels aar
------------ eks output -----------
EI.2></side>
<side id="153v">
<l id="1" id2="1"><initial>Ie</initial>th * lidh<forkortelse>et</forkortelse> spel acth<forkortelse>e</forkortelse>r jech ath skriwe</l>
<l id="2" id2="2">th<forkortelse>e</forkortelse>r man maa tidh<forkortelse>e</forkortelse>n m<forkortelse>edh</forkortelse> for driwe</l>
<l id="3" id2="3">om nog<forkortelse>e</forkortelse>r vndh<forkortelse>e</forkortelse>r i fordom skieddæ</l>
<l id="5" id2="100">for wor h<forkortelse>er</forkortelse>ræ hans fødzels aar</l>
----- ønsket eks output ------------
?xml version="1.0" encoding="ISO-8859-1"?>
<TEI.2></side>
<side id="153v">
<l id="1" id2="1"><initial>Ie</initial>th * lidh<forkortelse>et</forkortelse> spel acth<forkortelse>e</forkortelse>r jech ath skriwe</l>
<l id="2" id2="2">th<forkortelse>e</forkortelse>r man maa tidh<forkortelse>e</forkortelse>n m<forkortelse>edh</forkortelse> for driwe</l>
<l id="3" id2="3">om nog<forkortelse>e</forkortelse>r vndh<forkortelse>e</forkortelse>r i fordom skieddæ</l>
<l id="5" id2="100">i hwilken man th<forkortelse>et</forkortelse> lyst<forkortelse>e</forkortelse>r ath wedhe</l>
<l id="6" id2="101">for wor h<forkortelse>er</forkortelse>ræ hans fødzels aar</l>
------------------------