Subject: | |
From: | |
Reply To: | |
Date: | Tue, 8 Mar 2011 17:49:09 -0800 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
This is also being answered here:
http://fmforums.com/forum/topic/76985-return-input-in-specific-form/
Lee
On Mar 7, 2011, at 9:27 PM, John Wenmeekers wrote:
> Hi all,
>
> I struggle for some time now changing the output of a CF.
>
> Let ( [
> digits = "0123456789" ;
> len = Length ( text ) ;
> num1 = not IsEmpty ( Filter ( Left ( text ; 1 ) ; digits ) ) ;
> num2 = not IsEmpty ( Filter ( Middle ( text ; 2 ; 1 ) ; digits ) )
> ] ;
> Case (
> num1 and num2 ;
> Left ( text ; 2 ) & Case ( len > 2 ; "-" & PLCFormat ( Right ( text ; len -
> 2 ) ) ) ;
>
> num1 xor num2 ;
> Left ( text ; 1 ) & Case ( len > 1 ; "-" & PLCFormat ( Right ( text ; len -
> 1 ) ) ) ;
>
> Left ( text ; 1 ) & Case ( len > 1 ; PLCFormat ( Right ( text ; len - 1 ) ) )
> )
> )
>
> This CF returns the possible digits in an input field in groups of 2 with a
> dash.
> When there are letters involved, they are also separated from the
> number/digits by a dash.
>
> Example input/output:
>
> TA123/TA-12-3
> 1234JKL/12-34-JKL
> 123TA45/12-3-TA-45
>
> I need an additional output form when the numbers are a group of 5 digits.
>
> TA12345 needs to be TA-12-345
> 12345JK needs to be 12-235-JK
>
> By now I know I have to test not only for the first 2 characters, but also
> for 3 and 4.
> Reason is, if 3 is a digit, and 4 not, I need to output 3 characters and a
> dash (instead of just 2 and a dash as before).
>
> So, I need to keep the output like it is now, only when there are 5
> consecutive digits, the return needs to be a group of 2/dash/group of 3,
> with possible letters.
>
> Any hint, idea, solution....?
|
|
|