jrRaid Posted May 2, 2007 Posted May 2, 2007 (edited) I need to parse numbers in separate fields. Base is a text field with data: 124.23F or 12.34G or 123.4H or 1.23K. There will be always one letter, no problem to parse that part. For the number left of the period I use: Left ( myField; Position ( myField; "."; 1; 1) - 1) Works well. If I follow the same logic (well, my logic), for the part right of the period I could use: GetAsNumber ( Right ( myField; Position ( myField; "."; 1; 1) - 1)) GetAsNumber because the result of the parsing has to be number and I don't want the possible letters. I just got 1 number as result. When I change the -1 to +1, the result takes sometimes 1 character from the left side of the (.) period. What am I doing wrong and why?. The why is important to understand the needed logic. Just to go more on my own. Tia Edited May 2, 2007 by Guest
jrRaid Posted May 2, 2007 Author Posted May 2, 2007 That will remove the (.) and the letter. I need what's at the left side of the period in one field, what's right of the period in an other field and the letter in a third field.
Lee Smith Posted May 2, 2007 Posted May 2, 2007 I missed read your need. How about: Left side Left ( text ; Position ( text ; "." ; 1 ; 1 ) - 1 ) Right Side Filter ( Right ( text ; Length ( text ) - Position ( text ; "." ; 1 ; 1 )) ; "0123456789") And for the letter Filter (Text; ""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz., ") Lee
jrRaid Posted May 2, 2007 Author Posted May 2, 2007 Thanks Lee, it works. I only had to remove the (.) and the (,) from your Text formula. Although I see how it works, I want to understand why my approach didn't work. Care to shed some light ?
mr_vodka Posted May 2, 2007 Posted May 2, 2007 Hmmm if there are no spaces we can use possibly. GetAsNumber ( LeftWords ( Substitute ( myField; "."; " " ); 1 ) ) GetAsNumber ( RightWords ( Substitute ( myField; "."; " " ); 1 ) )
jrRaid Posted May 2, 2007 Author Posted May 2, 2007 Maybe yes, but that would remove a posible leading zero in the right part. And that possible zero is still needed in the parsed part.
mr_vodka Posted May 2, 2007 Posted May 2, 2007 Then try: Filter ( LeftWords ( Substitute ( myField; "."; " " ); 1 ) ); "0123456789" ) Filter ( RightWords ( Substitute ( myField; "."; " " ); 1 ) ); "0123456789" )
Lee Smith Posted May 2, 2007 Posted May 2, 2007 Both of your calculations have an extra ")" in them. Filter ( LeftWords ( Substitute ( myField; "."; " " ); 1 ) [color:red]); "0123456789" ) Filter( RightWords ( Substitute ( myField; "."; " " ); 1 ) [color:red]); "0123456789" ) Lee
mr_vodka Posted May 2, 2007 Posted May 2, 2007 Oops. Thats what I get for copying and pasting. Thanks for the catch Lee. ???
Recommended Posts
This topic is 6475 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now