a little help with "find" script
Timothy Miller
gandalf at doctorTimothyMiller.com
Sat Mar 10 22:06:14 EST 2012
Thankya Mike,
If I understand you correctly, my script probably works right, might be a little kludgy. Another way to end the search is to look for "not found" in the result.
Hope I got that right.
I'm still studying your foundChunk script.
Cheers,
Tim
On Mar 10, 2012, at 5:23 PM, Mike Bonner wrote:
> The result will contain "not found" if there is no match, and also on the
> find after the last chunk is found at which points it resets to the start.
>
> Something like the following is pretty straight forward, could be adjusted
> to accept card names as an additional argument so you could loop through
> all the cardnames (think thats already been suggested?)
>
> And then have the inner loop call the find function to build up your lists
> of foundchunks.
>
> on mouseUp
> -- could add a repeat for each line tName in the cardnames of this stack..
> repeat until (findIt("asd","foo")) is "not found"
> put the foundchunk & return after tVar
> end repeat
> end mouseUp
>
> function findit tString,tField --could add a card name argument and adjust
> the find.
> find tstring in field tField
> return the result
> end findit
>
>
>
> On Sat, Mar 10, 2012 at 6:05 PM, Timothy Miller <
> gandalf at doctortimothymiller.com> wrote:
>
>>
>> On Mar 9, 2012, at 12:28 PM, Timothy Miller wrote:
>>
>>> Oops. Forgot how to do this. Knew it once. I don't write scripts every
>> day. Not even every month.
>>>
>>> Please remind me how to write a script that finds and records every
>> instance of a string in field "foo" I know how to write repeat loops, but
>> can't remember how to keep finding and then exit when the last instance is
>> found.
>>
>> Predictably, I didn't understand the advice I got, though I do appreciate
>> it. With enough study, I could have figured it out. Instead, I tried to
>> remember the way I've done it in the past, combined with trial and error.
>>
>> The string I want to find is "Card ID"
>>
>> I came up with this
>>
>> repeat
>> find string "card ID" in field "narrative"
>> if the foundChunk is not empty then
>> put the foundChunk && "of card ID" && the short Id of this card
>> into tVar
>> if tVar is not among the lines of bigVar then
>> put tVar & return after bigVar
>> else
>> exit repeat
>> end if
>> end if
>> end repeat
>>
>> This is primitive, hyperCard-like scripting I suppose. That's how homey
>> rolls. It seems to work. Is this a bad way to do it? Is there a clearly
>> better way?
>>
>> As far as I can tell, in a repeat loop, the "find" command somehow keeps
>> track of the last found item and moves on to find the next one, but repeats
>> forever unless you script some way to detect duplicate foundChunks and
>> exit. Correct?
>>
>> I have another question before I can make this script do what I want, but
>> I'll start a new thread, to avoid confusion.
>>
>> Tim
>> _______________________________________________
>> 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