offset broken?

Bob Sneidar bobsneidar at iotecdigital.com
Sun Feb 23 13:38:42 EST 2014


Nope that is right. It’s “ignoring” the number of characters you are skipping and treating the character after that as if it were the first character. 

Honestly though, I would have liked to see this work something like the old dBase function at() where the third argument was the instance of what you were looking for, and the result was the absolute position of the character in the search string. AT() would have produced 10 in that case, which is what I think Bill is after.

The way this works now it’s the same as saying “delete char 1 to 3 of theChars” before the offset function, then adding 3 to the result after it. I don’t really see a need to know what position a character is in after deleting a number of characters before it, but maybe there would be some application for it. 

Bob


On Feb 22, 2014, at 09:49 , prothero at earthednet.org wrote:

> Folks:
> I think there is something weird about "offset". This occurred on version 6.5 and now on 6.6.
> 
> First off, the documents say:
> 
> "the charsToSkip is a non-negative integer. If you don't specify how many charsToSkip, the offset function does not skip any items and starts at the beginning of the stringToSearch."
> 
> Note the use of the word "items".  Skipping characters vs skipping "items" is a different matter. In the revdocs that are online, the definition of "characters" to skip is correct.
> 
> But, that's not the end of the story. Offset does not appear to be working correctly anyway.
> 
> If I run the script:
> 
>   put "abcdefgabcccablmnopoq" into theChars
>   put offset("c",theChars)
> 
> I get: 3, which is correct
> 
> If I do:
>   put "abcdefgabcccablmnopoq" into theChars
>   put offset("c",theChars,3)
> 
> I get 7.  ??? What the heck? It looks like it returns (the number of characters to the search char) - (# to skip).
> 
> But, if I do:
>   put "abcdefgabcccablmnopoq" into theChars
>   put offset("c",theChars,7)
> 
> I get: 3
> 
> So, something is very wrong with the offset command. I worked around this in a parsing script by always not skipping any characters, then after I found the first instance, deleting the characters I wanted to skip before the next offset invocation.
> 
> Seems like a bug to me. What do you think? Or is it only my system? Or is the use of the offset function some convoluted logic that's different from most other implementations of an offset function? What do I know? I'm new to Livecode.
> 
> Best,
> Bill
> 
> 
> William Prothero
> http://es.earthednet.org
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the use-livecode mailing list