Rev 4158 | Rev 7692 | 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 |
2 | !goto proc |
||
3 | !endif |
||
4 | |||
4701 | bpr | 5 | slib_author=Fabrice, Guerimand |
6 | slib_example=4345678\ |
||
7 | 5678\ |
||
8 | 5 234\ |
||
9 | 456.789567\ |
||
10 | 456.789567,comma\ |
||
11 | [897456,789],comma |
||
20 | reyssat | 12 | !exit |
13 | |||
14 | :proc |
||
4701 | bpr | 15 | slib_input=$(wims_read_parm[1]) |
16 | slib_input=!declosing $slib_input |
||
17 | slib_input=!replace internal , by . in $slib_input |
||
18 | !if comma isin $wims_read_parm |
||
19 | slib_point=, |
||
20 | !endif |
||
21 | !default slib_point=. |
||
20 | reyssat | 22 | |
4701 | bpr | 23 | slib_test=$[$slib_input] |
24 | !if NaN isin $slib_test |
||
20 | reyssat | 25 | slib_out=NaN |
26 | !exit |
||
27 | !endif |
||
28 | |||
29 | !if e isin $slib_input |
||
30 | slib_out=$slib_input |
||
31 | !exit |
||
32 | !endif |
||
4701 | bpr | 33 | slib_input=!nospace $slib_input |
34 | slib_decomp=!replace internal . by , in $slib_input |
||
35 | slib_part=!item 1 of $slib_decomp |
||
36 | slib_nbchi=!charcnt $slib_part |
||
37 | slib_nbgrp=$[floor($slib_nbchi/3)] |
||
20 | reyssat | 38 | slib_out=$empty |
4701 | bpr | 39 | !ifval $slib_nbgrp*3!=$slib_nbchi |
40 | slib_out=!char 1 to $[$slib_nbchi-3*$slib_nbgrp] of $slib_part |
||
20 | reyssat | 41 | !endif |
4701 | bpr | 42 | !for slib_i=0 to $slib_nbgrp-1 |
43 | slib_tmp=!char $[$slib_nbchi-3*($slib_nbgrp-$slib_i)+1] to $[$slib_nbchi-3*($slib_nbgrp-$slib_i-1)] of $slib_part |
||
44 | slib_out=$slib_out $slib_tmp |
||
45 | !next slib_i |
||
20 | reyssat | 46 | |
4701 | bpr | 47 | slib_tst=!itemcnt $slib_decomp |
48 | !if $slib_tst=1 |
||
49 | slib_out=!singlespace $slib_out |
||
20 | reyssat | 50 | !exit |
51 | !endif |
||
4701 | bpr | 52 | slib_part=!item 2 of $slib_decomp |
53 | slib_nbchi=!charcnt $slib_part |
||
54 | slib_nbgrp=$[ceil($slib_nbchi/3)] |
||
55 | slib_tmp=!char 1 to 3 of $slib_part |
||
56 | slib_out=$(slib_out)$slib_point$slib_tmp |
||
57 | !for slib_i=1 to $slib_nbgrp |
||
58 | slib_tmp=!char $[1+3*($slib_i)] to $[3+3*$slib_i] of $slib_part |
||
59 | slib_out=$slib_out $slib_tmp |
||
60 | !next slib_i |
||
61 | |||
62 | slib_out=!singlespace $slib_out |