is among - problem
Steve Laming
steve.laming at ntlworld.com
Fri Nov 21 19:38:25 EST 2003
One last point, I'm not sure if you wanted to include numbers 111, 222,333,
311 etc as duplicates but if you didn't, a simple test to add the numbers
and check the total would suffice to ensure that only one of each number
was present, so that the code now becomes:
On MouseUp
put false into found
put "1,2,3" into search$
put sum (search$) into sumsearch
-- sort field "myList"
repeat with x = the number of lines in field "myList" down to 1
put char 1 of line x of field "mylist" into test1
put char 2 of line x of field "mylist" into test2
put char 3 of line x of field "mylist" into test3
If (test1+test2+test3) = sumsearch then
If test1 is among the items of search$ and test2 is among the items of
search$ and test3 is among the items of search$ then
If found then
delete line x of field "myList"
beep
else
put true into found
end if
end if
end if
end repeat
end MouseUp
At 00:09 22/11/03 +0000, you wrote:
>I couldn't resist testing it and here's what I came up with.
>
>I created a field "myfield" loaded with test numbers and a Go button with
>this script:
>On MouseUp
> put false into found
> put "1,2,3" into search$
> -- sort field "myList"
> repeat with x = the number of lines in field "myList" down to 1
put char 1
> If char 1 of line x of field "mylist" is among the items of search$ and
> char 2 of line x of field "mylist" is among the items of search$ and char
> 3 of line x of field "mylist" is among the items of search$ then
> If found then
> delete line x of field "myList"
> beep
> else
> put true into found
> end if
> end if
> end repeat
>
>end MouseUp
>
>
>Points to note:
>
>If you don't care which matching item you keep, then you don't need to
>sort the list.
>
>If you want to keep the lowest (value) one, sort descending, if you want
>to keep the highest one, sort ascending as the search has to start at the
>last item to stop the integrity of the search being destroyed by deletions.
>
>Steve
>
>
>
>
>At 23:35 21/11/03 +0000, you wrote:
>>I'll attempt to correct my own syntax errors:
>>
>>put false into found
>>search$="1,2,3"
>>sort field "myList"
>>repeat with x = 1 to the number of lines in field "myList"
>> If char 1 of line x of mylist is among the items of search$ and
>> char 2 of line x of mylist is among the items of search$ and char 3 of
>> line x of mylist is among the items of search$ then
>> If found then
>> delete line x of field "myList"
>> beep
>> else
>> put true into found
>>
>> end if
>> end if
>>end repeat
>>
>>
>>At 23:10 21/11/03 +0000, you wrote:
>>>Hi Thomas
>>>
>>>I don't yet know revolution well enough to check your coding quickly,
>>>but it does seem a little long winded.
>>>
>>>Perhaps you could try something along these lines.
>>>
>>>found=false
>>>sort field "myList"
>>>repeat with x = 1 to the number of lines in field "myList"
>>> If char 1 of line x of mylist is among the items of "123" and
>>> char 2 of line x of mylist is among the items of "123" and char 3 of
>>> line x of mylist is among the items of "123" then
>>> If found then
>>> delete line x of field "myList"
>>> beep
>>> else found = true
>>>end repeat
>>>
>>>the found flag should make sure that the first occurence is left intact.
>>>
>>>I'm sorry if any of the syntax is incorrect as I am new to revolution,
>>>but I am fairly certain that the logic will achieve your goal.
>>>
>>>Regards
>>>
>>>Steve
>>>
>>>
>>>
>>>
>>>
>>>At 09:47 21/11/03 -0500, you wrote:
>>>>Hello to all of you wonderful REV developers.. :-)
>>>>
>>>>I have a problem where I have a field filled with 3 single digit
>>>>numbers per line (210 lines). I wanted to find and delete any lines
>>>>that had ALL of the same numbers in it but in any order - so 123 and
>>>>213 and 321 and 312 would be duplicates and I would delete all but the
>>>>first one.
>>>>
>>>>The only thing I could think of was to convert the list to items with
>>>>commas between them and use the "is among" command.
>>>>I think I did it right but each time I try this I get different results
>>>>from the following script. They are close but different.
>>>>
>>>>I thought I would go with use one line to check all of the other lines
>>>>and if a total match is found then delete that line. But looking
>>>>through the list that is left over after this runs I still find a bunch
>>>>of "duplicates" - 1,3,2 and later on a 3,1,2 which should be deleted.
>>>>
>>>>Any ideas what I did wrong??? Or where my square peg thinking got me
>>>>into trouble???
>>>>
>>>>Mouse handler with two fields: myList has the list of random numbers
>>>>and myCount which holds the final count. I am trying to find an answer
>>>>for my daughters Math problem and this is the last part of it.
>>>>
>>>> sort field "myList"
>>>> put the number of lines of field "myList" &cr after field "myCount"
>>>> repeat with x = 1 to the number of lines in field "myList"
>>>> put char 1 of line x of field "myList" & "," into myTemp
>>>> put char 2 of line x of field "myList" & "," after myTemp
>>>> put char 3 of line x of field "myList" after myTemp
>>>> put myTemp into line x of field "myList"
>>>> end repeat
>>>> repeat with x = 1 to the number of lines in field "myList"
>>>> repeat with y = 1 to (the number of lines in field "myList" - 1)
>>>> put y + 1 into y
>>>> put item 1 of line y of field "myList" into H
>>>> put item 2 of line y of field "myList" into I
>>>> put item 3 of line y of field "myList" into G
>>>> put line x of field "myList" into J
>>>>
>>>> if H is among the items of J then
>>>> if I is among the items of J then
>>>> if G is among the items of J then
>>>> delete line y + 1 of field "myList"
>>>> beep
>>>> end if
>>>> end if
>>>> end if
>>>> end repeat
>>>>
>>>>
>>>>Advanced Media Group
>>>>Thomas J McGrath III ð 2003 ð 3mcgrath at adelphia.net
>>>>220 Drake Road, Bethel Park, PA 15102
>>>>
>>>>
>>>>_______________________________________________
>>>>use-revolution mailing list
>>>>use-revolution at lists.runrev.com
>>>>http://lists.runrev.com/mailman/listinfo/use-revolution
>>>
>>>
>>>_______________________________________________
>>>use-revolution mailing list
>>>use-revolution at lists.runrev.com
>>>http://lists.runrev.com/mailman/listinfo/use-revolution
>>
>>
>>_______________________________________________
>>use-revolution mailing list
>>use-revolution at lists.runrev.com
>>http://lists.runrev.com/mailman/listinfo/use-revolution
>
>
>_______________________________________________
>use-revolution mailing list
>use-revolution at lists.runrev.com
>http://lists.runrev.com/mailman/listinfo/use-revolution
More information about the use-livecode
mailing list