how to adress the object name and not the number?

Eric Chatonet eric.chatonet at sosmartsoftware.com
Fri Apr 20 05:21:12 EDT 2007


Hi Bill,

I understand you *must* specify the number of chars of the label  
prefix that may vary in my solution and I understand also it might  
bother you :-)
So:

function NumericSuffix pStr
   local tCount
   -----
   if pStr = empty then return "error: empty string."
   repeat with tCount = the number of chars of pStr down to 1
      if char tCount of pStr is not an integer then return char  
(tCount + 1) to -1 of pStr
   end repeat
   return "error: could not determine numeric suffix."
end NumericSuffix

In most cases, timings will not be noticeably affected when running  
this additional function: about 2 ms for 100 iterations.
On the other hand, I take the opportunity (and I am sure you are  
aware of it) to point out errors management handling in the above code.
But that's another story :-)

OK: I stop to split hairs...

No :-)
Just a pointer:
When variables checking is on (always here), variables that are used  
in a 'repeat with' form (like tCount  above) are never taken into  
account.
I think they should, of course ;-)

Best regards from Paris,
Eric Chatonet.

Le 20 avr. 07 à 10:44, Bill Marriott a écrit :

> Eric,
>
>>>>
> I prefer to name any object with a single word
> ("LastBackupDate5" for instance) and *always* quoted even if XTalks
> don't make it compulsory in this case.
> And to retrieve the right suffix, instead of using last word, I just
> use char x to -1:
> <<<
>
> Right! I always, always quote string literals as well, even though  
> Rev will handle it for me if I don't.
>
> But on the other idea, this is exactly the problem I'm trying to  
> solve. :) It's cumbersome because you've got the problem of a  
> variant number of items and length of the label prefix.
>
> If you have more than 10 items (as in my example) you can't use  
> digits 0-9 and instead have to force your numbering system to two  
> digits. Rev doesn't comprehend "last 2 char" so you instead have to  
> write something like
>
> put "0" & i into n; put thePrefix & char (the length of n) to -2 of  
> n into itemName --for <100 items
>
> or add a FileMaker-esque "RightString(string,numchars)" custom  
> function to get your "fixed length" serial number.
>
> vs the bog-simple "put thePrefix && i into itemName" when building  
> the reference.
>
> Then, when you're parsing out the item, unless all your prefixes  
> have exactly the same number of characters, you have to say
>
> char (the length of itemName) to -2 of itemName
>
> or hard-code the length of the prefix, vs "last word of itemName"  
> which works no matter what.
>
> I like my system because it's more generalized. Building a name  
> just takes && instead of &, and "last word" is easier/quicker for  
> me to write and parse than the "char x to -1" construction. I can  
> use it in every situation without modification, whatever prefix I  
> select and whether it's 9 or 900 items I'm trying to keep track of.

----------------------------------------------------------------
http://www.sosmartsoftware.com/
eric.chatonet at sosmartsoftware.com/
----------------------------------------------------------------





More information about the use-livecode mailing list