F�lgende unntak b�r tas h�nd om:
Vest- Tyskland
Regelen er at neste rad begynner med stor bokstav (evt. unntak hvis hele ordet er skrevet med store bokstaver)
Denne blir vel verre:
romersk- katolsk
mvh
Ketil F. Hanssen
------- Original Message -------
From : Tommy Riboe tommy.riboe@bbab.se Date : Wed, 28 Jan 2004 00:37:13 +0100
Jag byggde vidare p� regexp-exemplet fr�n Bengt och kan nu erbjuda
nedanst�ende f�rslag. Eftersom jag �r s� gott som nyb�rjare p� Perl s� skall mitt exempel tas som ett algoritmf�rslag och kompletteras med felhantering och liknande. Dessutom har jag s�kert missat n�got undantagsfall. Det verkar i alla fall fungera med den medf�ljande texten ut�kad med enstaka instanser av mina undantag.
mvh Tommy Riboe
#============================================ #!/bin/perl # # huvudregel: # a) rader vars sista ord slutar med '-' bryts f�re avstavat ord # b) avstavat ord sammanfogas p� n�sta rad # c) indrag bibeh�lles # # undantag: # a) rad som slutar med tankstreck (ensamt '-') # b) rad som slutar med f�rled i upprepade sammansatta ord # c) avstavning i sidans sista rad # # vid undantag b) flyttas f�rledet till f�ljande rad
seek(STDIN, 0, SEEK_SET); $line= ""; $nextline= ""; $spill = "";
#if () { # l�s in f�rsta raden $line = ; { # avl�gsna ord som slutar med bindestreck fr�n # slutet av raden, med undantag f�r ensamma # bindestreck, placera avl�gsnad text i $spill $line =~ s/(\s*)(.*)( +?)(\S+?)-$/\1\2/; $spill = $4; } print $line;
while () {
# testa om n�sta rad b�rjar med "och", "eller" # (b�r mer naturligt placeras efter n�sta sats # och anv�nda sig av $nextline) if (/^\s*(och|eller).*$/) { $spill = $spill . "- "; }
# f�rbered n�sta rad $nextline = $_;
# s�tt ihop marginal + spill + n�sta_rad $nextline =~ s/(\s*)(.+?)$/$1$spill$2/;
# g�r n�sta rad till aktuell rad $line = $nextline;
# avl�gsna ord som slutar med bindestreck fr�n # slutet av raden, med undantag f�r ensamma # bindestreck, placera avl�gsnad text i $spill $line =~ s/(\s*)(.*)( +?)(\S+?)-$/\1\2/; $spill = $4; print $line; } #} print "\n(till n�sta sida: " . $spill . ")\n"; #============================================
-----Ursprungligt meddelande----- Fr�n: runeberg-admin@lists.lysator.liu.se [mailto:runeberg-admin@lists.lysator.liu.se]F�r Bengt J. Olsson Skickat: den 27 januari 2004 00:00 Till: runeberg@lists.lysator.liu.se; Hans Persson �mne: [Runeberg] Re: [Runeberg] Vill du hj�lpa Projekt Runeberg programmera?
Har inte n�got f�rdigt program men har f�ljande brott-stycke av ett s�nt program;
$line =~ s/(.*) (.+?)-$/$1/;
allt utom det avstavade ordet finns kvar i $1; f�rsta delen av det avstavade ordet finns i $2>
$line = $2 . $line;
M v h Bengt
Bengt J. Olsson bengt@blafs.com http://blafs.com
_______________________________________________ Runeberg mailing list Runeberg@lists.lysator.liu.se http://lists.lysator.liu.se/mailman/listinfo/runeberg
_________________________________________________________ Finn dine gamle klassekamerater på http://klassekamerater.nettavisen.no