>>>>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).
>
>Thanks, first part works like a charm.
>
>In second part I do
NOT want to strip out the in valid characters, I want to check if the are in the string. If string had invalid characters I would tell the user.
Then simply change the last line from
cString = chrtran( cString, lcInvalid, "" )
to
lcNewString = chrtran( cString, lcInvalid, "" )
IF LEN(lcNewString) # LEN(cString)
inform the user