offset broken?

prothero at earthednet.org prothero at earthednet.org
Sat Feb 22 13:32:30 EST 2014


Folks:
I get it. It seems an odd way to implement it, though. Anyway, a clarification in the docs would help the confusion, and the use of the word "items" in the docs is definitely confusing.

Another thing that confuses me, as a newbie, is the free interchangeable use of "handler" and "script". In my understanding, a "script" is the entire collection of handlers within an object. A handler is what comes between the "on someName" and the "end someName" or the "function someName" and the "end someName". I am still not clear on the limits of how many "scripts" in the front scripts and whether the limit applies to "scripts" or "handlers".

Minor frustrations all, because i do like livecode and have been feeling very productive using it.

Best,
Bill
William Prothero
http://es.earthednet.org



On Feb 22, 2014, at 10:25 AM, Peter Haworth <pete at lcsql.com> wrote:

> Hi Bill,
> If you specify a number of characters to skip, the offset that is returned
> is relative to that number, not the start of the string.  So if you specify
> 7 characters to skip and the character you are looking for is the 10th
> character in the string, you will get (10-7) or 3 as the result.
> 
> Pete
> lcSQL Software <http://www.lcsql.com>
> Home of lcStackBrowser <http://www.lcsql.com/lcstackbrowser.html> and
> SQLiteAdmin <http://www.lcsql.com/sqliteadmin.html>
> 
> 
> On Sat, Feb 22, 2014 at 9:49 AM, prothero at earthednet.org <
> 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
>> 
> _______________________________________________
> 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