I'm stumped on my find/count routine
Björnke von Gierke
bvg at mac.com
Sat Apr 12 09:43:07 EDT 2003
I did not test your search, but it is there are some things you could
check into to make your script work. (see below)
On Samstag, Apr 12, 2003, at 01:56 Europe/Zurich, nc wrote:
> I am working on a stack to query against a text file and then display
> the results in a field within the card using the "filter" command.
>
> Now I am working on a script to count a string of text within the
> filtered field. Here is the script:
>
> ==============================================================
>
> on mouseup
>
> --setting things up
> put empty into field "Hits"
> put the number of lines of field "Results" into lCount
> put 0 into x
additional needed for clearing your search to not start searching where
the last one stopped:
find empty
>
> -- asking for input
> ask "What do you want me to count?"
> put it into cVar
>
> -- exitting the script upon Cancel
> if cVar is empty then
> exit mouseUp
> else
>
> -- finding the first instance and
> -- setting a marker using foundLine
> find cVar in field "Results"
> put the foundLine into y
> add 1 to x
it is possible that cVar is not on the first line,
thus x =1 does not match the number of lines already gone by
>
> -- counting the other instances
why do you first search for one instance, and then for the rest?
wouldn't it be easier to just search each line without verifying a
first occurrence?
> repeat until x = lCount
> find cVar in field "Results"
> if the foundLine = y then
> exit repeat
you sure this shouldn't be "next repeat" ?
also the search starts where it last left of, so foundLine should not
be able to equal y
> else add 1 to x
> end repeat
>
> end if
>
> -- here's what I found
> put "Search string = " & cVar into line 1 of field "Hits"
> if x=1 then
> put "# of hits = " & x into line 2 of field "Hits"
> else put "# of hits = " & (x-1) into line 2 of field "Hits"
> put "# of lines searched = " & the number of lines of field
> "Results" into line 3 of field "Hits"
>
> end mouseup
> ==============================================================
> ...
maybe it is one of these things that gives you strange results?
More information about the use-livecode
mailing list