Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Removing extra spaces and limiting input to A-Z, 1-0, an
Message
From
04/10/2006 13:44:14
 
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
01159441
Message ID:
01159464
Views:
20
>>>I am writing an applications where I want to:
>>>
>>>1. remvoe extra spaces between words, i.e. "xxx yyy" becomes "xxx yyy" and that the input is only A-Z and 0-9 (i.e. no specail characters)
>>>
>>>2. the input hast the format "xxx.yyy.ccc.etc) where "xxx", "yyy", "ccc", etc can only A-Z, 0-9, last character cannot be a period, and first character of "xxx", "yyy", "ccc", etc is A-Z.
>>>
>>>My questions are how to best remove the extra spaces and how check that only A-Z and 0-9 are entered.
>>>
>>>TIA
>>
>>Claude,
>>
>>For removing extra spaces, this should do the trick.
>>
>>cString = "xxx  yyy  zzz"
>>cString = STRTRAN(cString,SPACE(2),SPACE(1),1,OCCURS(SPACE(2),cString))
>>
>>Regards,
>
>Actually, this would only work if there was only a double space... not a triple or 4 spaces...
>
>
>cString = "xxx     yyy         zzz"
>do while at( "  ", cString ) > 0
>  cString = strtran( cString, "  ", " " )
>enddo
>
>
>
>As for stripping the other invalid characters you don't want to allow, I would pre-build a string of chars you DONT want, then use CHRTRAN() such as
>
>
>lcInvalid = "`~!@#$%^&*()-_=+{}[]\|;:,<.>/?'" + '"'
>
>cString = "xx@()x]  ]  ] y]yy@(*!$         zzz"
>cString = chrtran( cString, lcInvalid, "" )
>
>the CHRTRAN() will take the string, look for each character found in lcInvalid, and replace it with the character in the same position in parameter 3 (which empty will result in no character and thus cut out of the string).

Don,

You're right. To make it work with longer space iterations you'd need to do in something like a DO WHILE OCCURS(SPACE(2),cString) loop.

Regards,
Jim
Previous
Reply
Map
View

Click here to load this message in the networking platform