X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=kernel%2Fdefault.fml;h=29c21b50e2b73e8a348f32e23d20a9e997637951;hb=4938d0c2e8f4e1eec397c2bfbbc7e23fd150c369;hp=aff0de392650e037256cf3da30b2e66307ab913e;hpb=3f6af0f3aa9f114cf562c28f2ed0b954e4c5d659;p=egate.git diff --git a/kernel/default.fml b/kernel/default.fml index aff0de3..29c21b5 100644 --- a/kernel/default.fml +++ b/kernel/default.fml @@ -1,5 +1,5 @@ # Fml scripts to display MARC records -# default.fml,v 1.1 1995/02/20 21:17:08 adam Exp +# $Id: default.fml,v 1.5 1995/05/18 12:03:08 adam Exp $ \func f0 rec { \foreach line {\rec} { \line \index 1 \ @@ -13,30 +13,70 @@ \n } } -\func mline prefix suffix lin tag subfield { - \if {{\strcmp {\lin \index 1} \tag}\eq 0} { - \foreach field {\lin \index 3} { - \if {{\strcmp {\field \index 1} \subfield}\eq 0} { - \prefix - \field \index 2 - \suffix + +\func case tag indicator identifier \code max { + \if {\match \tag {\line\index 1}} { + \if {\match \indicator {\line\index 2}} { + \foreach field {\line \index 3} { + \if{\match \identifier \field\index 1} { + \set info {\field \index 2} + \if {{\strlen \info}\gt \max} + { + \set info {\strsub \info 0 50 ..} + } + \code } } - } + } } } -\func f1 rec { - \foreach Line {\rec} { - \mline '' ': ' \Line 245 c - } - \foreach Line {\rec} { - \mline '' {} \Line 245 a +\func casx tag identifier \pre \mid \end { + \set no {} + \if {\match \tag {\line\index 1}} { + \foreach field {\line \index 3} { + \if {\match \identifier \field\index 1} { + \set info {\field \index 2} + \if {\no} { + \mid + \incr \no + } + \else { + \set no 1 + \pre + } + } + } + } + \if {\no} { + \end } - ' - ' - \foreach Line {\rec} { - \mline '' ', ' \Line 260 b - \mline '' ' ' \Line 260 c +} + +\func marc rec \code { + \foreach line {\rec} {\code} +} + +\func f2 record { + \marc {\record} { + \case 245 .. [a] { \info } 60 + \case 260 .. c { - \info} 9 } \n } +\func f1 record { + \foreach line {\record} { + \case 245 .. [ab] {\info\ } 400 + \casx 260 [abc] {\n\ \ \info} {\ \info} {} + \casx 300 [ab] {- \info} {\ \info} {} + } + \n + \foreach line {\record} { + \casx 700 a {\info} {\ ,\info} {\n} + } + \foreach line {\record} { + \case 020 .. a {ISBN: \info\n} 50 + \case 022 .. a {ISSN: \info\n} 50 + \casx 050 [ab] {LC: \info} {\info} {\n} + } +}