Re: Need help with this
- Posted by Juergen Luethje <j.lue at gmx.de> Dec 19, 2005
- 539 views
Me wrote: > C Bouzy wrote: > >> I have been attempting to write a function that removes any amount of >> numbers from the beginning of a string of text, but it is not working >> correctly. Anyone want to take a crack at this? >> >> Example: 01-MyText = MyText >> Example: 01 - MyText = MyText >> The hyphen after the numbers is important, because if there is no hyphen >> after the numbers, the numbers should not be removed. > > Maybe this is what you want: > > > function verify (integer start, sequence source, sequence charlist) > -- searches for the first character in 'source', that is not contained > -- in 'charlist', beginning at position 'start'; > -- returns the position of that character, or 0 if nothing found > -- in: start : 1..length(source) > -- source : empty sequence ==> function returns 0 > -- charlist: empty sequence ==> function returns 0 > > if start >= 1 and length(charlist) then > for i = start to length(source) do > if not find(source[i], charlist) then > return i > end if > end for > end if > return 0 > end function > > > constant > NUMERIC = "0123456789.", > WHITESPACE = "\t\r\n " Thanks to a private message that I got, I realized that the following function did not work like I expected it to do. Two lines must be added. In some cases it still returns results that are different from what Alex' program returns. I don't know what Chris exactly needs. > global function special_func (sequence source) > integer p > > p = verify(1, source, NUMERIC) > if p != 0 then > p = verify(p, source, WHITESPACE) > if p != 0 and source[p] = '-' then > p = verify(p+1, source, WHITESPACE) > if p != 0 then > return source[p..$] -- begin new else return "" -- end new > end if > end if > end if > return source > end function > > > -- * Demo * -- > printf(1, "'%s'\n", {special_func("01-MyText")}) > printf(1, "'%s'\n", {special_func("01 - MyText")}) > printf(1, "'%s'\n", {special_func("01 MyText")}) > printf(1, "'%s'\n", {special_func(" MyText")}) Regards, Juergen -- Have you read a good program lately?