Subversion Repositories wimsdev

Rev

Rev 12964 | Blame | Compare with Previous | Last modification | View Log | RSS feed

!if $wims_read_parm!=slib_header
  !goto proc
!endif
slib_author=Bernadette, Perrin-Riou

slib_title=Numération romaine
slib_parms=1\
,number to convert (less than 3999)
slib_out=Conversion en numération romaine

slib_example=456\
654\
12

!exit

:proc

slib_chif=$wims_read_parm

slib_romain=
!bound $slib_chif between 1 and 3999
slib_number=1,I,V\
10,X,L\
100,C,D\
1000,M,MMMMM
slib_cnt=!charcnt $slib_chif
!for slib_a = 1 to $slib_cnt
  slib_digit=!char $[$slib_cnt - $slib_a+1] of $slib_chif
  slib_i= $(slib_number[$slib_a;2])
  slib_v=$(slib_number[$slib_a;3])
  !if $slib_digit iswordof 1 2 3
    slib_rom=!makelist $slib_i for x = 1 to $slib_digit
    slib_romain= $slib_rom $slib_romain
  !endif
  !if $slib_digit=4
    slib_romain= $slib_i $slib_v $slib_romain
  !endif
  !if $slib_digit=5
    slib_romain= $slib_v $slib_romain
  !endif
   !if $slib_digit iswordof 6 7 8
     slib_rom= !makelist $slib_i for x = 1 to $slib_digit -5
     slib_romain=$slib_v$slib_rom $slib_romain
   !endif
   !if $slib_digit=9
     slib_x=$(slib_number[$slib_a+1;2])
     slib_romain=$slib_i$slib_x$slib_romain
   !endif
 !next

 slib_out=!replace internal , by in $slib_romain
 slib_out=!nospace $slib_out