John, I don't have time to test this exhaustively but I think it's OK: Let ( [ digits = "0123456789" ; len = Length ( text ) ; num1 = not IsEmpty ( Filter ( Left ( text ; 1 ) ; digits ) ) ; num2 = not IsEmpty ( Filter ( Middle ( text ; 2 ; 1 ) ; digits ) ) ; num3 = not IsEmpty ( Filter ( Middle ( text ; 3 ; 1 ) ; digits ) ) ; num34 = len > 3 and Middle ( text ; 4 ; 1 ) = Filter ( Middle ( text ; 4 ; 1 ) ; digits ) ; triplet = num1 and num2 and num3 and not num34 ] ; Case ( num1 xor num2 ; Left ( text ; 1 ) & Case ( len > 1 ; "-" & PLCFormat ( Right ( text ; len - 1 ) ) ) ; triplet ; Left ( text ; 3 ) & Case ( len > 3 ; "-" & PLCFormat ( Right ( text ; len - 3 ) ) ) ; num1 and num2 ; Left ( text ; 2 ) & Case ( len > 2 ; "-" & PLCFormat ( Right ( text ; len - 2 ) ) ) ; Left ( text ; 1 ) & Case ( len > 1 ; PLCFormat ( Right ( text ; len - 1 ) ) ) ) ) cheers Tom On 8 Mar 2011, at 05:27, 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....? >