Rev 13585 | Rev 15272 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
20 | reyssat | 1 | !if $wims_read_parm!=slib_header |
13585 | bpr | 2 | !goto proc |
20 | reyssat | 3 | !endif |
4 | |||
4701 | bpr | 5 | slib_author=Fabrice, Guerimand |
13902 | bpr | 6 | !!Rajout option tex par Gilles Marbeuf avril 2019 |
4701 | bpr | 7 | slib_example=4345678\ |
13902 | bpr | 8 | 4345678,tex\ |
4701 | bpr | 9 | 5678\ |
13902 | bpr | 10 | 5678,tex\ |
4701 | bpr | 11 | 5 234\ |
13902 | bpr | 12 | 5 234,tex\ |
4701 | bpr | 13 | 456.789567\ |
13902 | bpr | 14 | 456.789567,tex\ |
4701 | bpr | 15 | 456.789567,comma\ |
13902 | bpr | 16 | 456.789567,comma tex\ |
17 | [897456,789],comma\ |
||
18 | [897456,789],comma tex |
||
20 | reyssat | 19 | !exit |
20 | |||
21 | :proc |
||
4701 | bpr | 22 | slib_input=$(wims_read_parm[1]) |
23 | slib_input=!declosing $slib_input |
||
24 | slib_input=!replace internal , by . in $slib_input |
||
25 | !if comma isin $wims_read_parm |
||
13902 | bpr | 26 | slib_point=, |
4701 | bpr | 27 | !endif |
28 | !default slib_point=. |
||
20 | reyssat | 29 | |
13902 | bpr | 30 | !if tex isin $wims_read_parm |
31 | slib_sep=\: |
||
32 | !else |
||
33 | slib_sep=$ $ |
||
34 | !endif |
||
35 | |||
4701 | bpr | 36 | slib_test=$[$slib_input] |
37 | !if NaN isin $slib_test |
||
13585 | bpr | 38 | slib_out=NaN |
39 | !exit |
||
20 | reyssat | 40 | !endif |
41 | |||
42 | !if e isin $slib_input |
||
13585 | bpr | 43 | slib_out=$slib_input |
44 | !exit |
||
20 | reyssat | 45 | !endif |
4701 | bpr | 46 | slib_input=!nospace $slib_input |
47 | slib_decomp=!replace internal . by , in $slib_input |
||
48 | slib_part=!item 1 of $slib_decomp |
||
49 | slib_nbchi=!charcnt $slib_part |
||
50 | slib_nbgrp=$[floor($slib_nbchi/3)] |
||
20 | reyssat | 51 | slib_out=$empty |
4701 | bpr | 52 | !ifval $slib_nbgrp*3!=$slib_nbchi |
13585 | bpr | 53 | slib_out=!char 1 to $[$slib_nbchi-3*$slib_nbgrp] of $slib_part |
20 | reyssat | 54 | !endif |
7692 | bpr | 55 | !for slib_i=0 to $slib_nbgrp-1 |
13585 | bpr | 56 | slib_tmp=!char $[$slib_nbchi-3*($slib_nbgrp-$slib_i)+1] to $[$slib_nbchi-3*($slib_nbgrp-$slib_i-1)] of $slib_part |
13902 | bpr | 57 | slib_out=$slib_out$slib_sep$slib_tmp |
4701 | bpr | 58 | !next slib_i |
20 | reyssat | 59 | |
4701 | bpr | 60 | slib_tst=!itemcnt $slib_decomp |
61 | !if $slib_tst=1 |
||
13585 | bpr | 62 | slib_out=!singlespace $slib_out |
63 | !exit |
||
20 | reyssat | 64 | !endif |
4701 | bpr | 65 | slib_part=!item 2 of $slib_decomp |
66 | slib_nbchi=!charcnt $slib_part |
||
67 | slib_nbgrp=$[ceil($slib_nbchi/3)] |
||
68 | slib_tmp=!char 1 to 3 of $slib_part |
||
69 | slib_out=$(slib_out)$slib_point$slib_tmp |
||
7692 | bpr | 70 | !for slib_i=1 to $slib_nbgrp |
13585 | bpr | 71 | slib_tmp=!char $[1+3*($slib_i)] to $[3+3*$slib_i] of $slib_part |
13902 | bpr | 72 | slib_out=$slib_out$slib_sep$slib_tmp |
4701 | bpr | 73 | !next slib_i |
74 | |||
7692 | bpr | 75 | slib_out=!singlespace $slib_out |
13902 | bpr | 76 | |
77 | !reset slib_input slib_point slib_decomp slib_sep slib_test slib_part slib_nbchi slib_nbgrp slib_tmp |