Highest Image File ID

Bob Sneidar bobs at twft.com
Wed Mar 21 13:46:05 EDT 2012


Thanks Richmond and Pete. What I want it for is to set the ID of the image I just created to theHighestID +1. Obviously, if I just created an image, those functions will return that image ID. 

As promised, I have written a function that I think is fairly bullet proof. It checks for an invalid object type, as well as handling singular or plural forms of object types. It returns a sorted list of whatever property for whatever object type you tell it, excluding duplicates. I will probably enhance it to accept a scope, either card or stack. I'm wondering if this would be more useful to others if each line was a list of the long ID of the object followed by the property value? 

eg. put objectList("buttons", "short name", "descending") into theButtonNames

function objectList theType, theProp, theSort
    if the last char of theType is "s" then put char 1 to -2 of theType into theType
    if theSort is empty then put "ascending" into theSort
    
    if theSort is not in "ascending.descending" then
        return "Error: Invalid sort"
    end if
    
    try
        do "get the " & theProp & " of " & theType & " 1 of this card"
    catch theError
        if item 1 of the last line of theError is "166" then
            return "Error: Invalid type"
        else
            return "Error: " & the last line of theError
        end if
    end try
    
    put empty into theObjectList
    put 1 into theLineNum
    put theType & "s" into thePluralType
    put the name of this card into theStartCard
    lock screen
    lock messages
    
    repeat with theCardNum = 1 to the number of cards of this stack
        go card theCardNum
        
        try
            do "put the number of " & thePluralType & " of this card into theTypeCount"
            repeat with theObjectNum = 1 to theTypeCount
                do "put the " & theProp & " of " & theType && theObjectNum & " into theValue"
                
                if theValue is not in theObjectList then
                    put theValue into line theLineNum of theObjectList
                    add 1 to theLineNum
                end if
            end repeat
        catch theError
            breakpoint
        end try
    end repeat
    
    go card theStartCard
    
    if line 1 of theObjectList is a number then
        do "sort theObjectList numeric" && theSort
    else
        do "sort theObjectList" && theSort
    end if
    
    return theObjectList
end objectList


On Mar 21, 2012, at 10:07 AM, Pete wrote:

> Maybe "get the ID of the last image of stack "xyz"?  Not sure if that would
> work or not, I seem to remember having problems with using the "last"
> keyword in the past but I think that was specifically to do with groups.
> Pete
> 
> On Wed, Mar 21, 2012 at 9:49 AM, J. Landman Gay <jacque at hyperactivesw.com>wrote:
> 
>> On 3/21/12 11:25 AM, Bob Sneidar wrote:
>> 
>>> Can anyone think of a quick way (other than a repeat loop) to
>>> determine the highest ID of all the image files in a stack?
>>> 
>> 
>> The ID of the stack is the either the last-used ID or the next available
>> one, I forget which. It doesn't discriminate between the kinds of controls
>> though.
>> 
>> --
>> Jacqueline Landman Gay         |     jacque at hyperactivesw.com
>> HyperActive Software           |     http://www.hyperactivesw.com
>> 
>> 
>> ______________________________**_________________
>> 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<http://lists.runrev.com/mailman/listinfo/use-livecode>
>> 
>> 
> 
> 
> -- 
> Pete
> Molly's Revenge <http://www.mollysrevenge.com>
> _______________________________________________
> 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