• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Faster List Checking
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Faster List Checking


  • Subject: Re: Faster List Checking
  • From: Gary Lists <email@hidden>
  • Date: Wed, 28 May 2003 15:29:30 -0400

On or about 5/28/03 2:15 PM, Frank W. Walker wrote:

> The recent discussion about lists makes me wonder if I could improve the speed
> of my latest script.
> In my script, there are two lists, text delimited by ", ":
> "errorlist" contains known instances of missing items (graphics).
> "logolist" contains all items (graphics) which have previously been found.
>
> The following lines check the list "errorlist" for the text item contained in
> the variable "graphic":
>
> set AppleScript's text item delimiters to {", "}
> repeat with i from 1 to (count text items in errorlist) --checks error list
> for current logo name
> if text item i of errorlist = graphic then
> set knownerror to "YES"
> end if
> end repeat
> set AppleScript's text item delimiters to {""}
>
>
> The next part checks the list "logolist" for the text item contained in the
> variable "graphic".
> If it finds the text item, it sets the variable "templatename" to a certain
> string.
>
>
> set AppleScript's text item delimiters to {", "}
> repeat with i from 1 to (count text items in logolist)
> if text item i of logolist = graphic then --checks logolist for previous
> use of graphic
> set templatename to "LOGO" & graphic
> exit repeat
> end if
> end repeat
> set AppleScript's text item delimiters to {""}
>
>
> Can I make these faster?
>
> TIA
> Frank

Frank,

I'm going to have a go at a few comments here. I am sure that others will
also, and that may help with speed and such (I mentioned the script object
list 'trick' earlier, so I won't repeat.)

Since I am "past beginner but no pro" perhaps my reply will help me a well
(or at least any correction from others if I err will. ;)

1. Since you use a delimiter of ", " in one instance, that makes me think
that you must have data in the form:

"something, something, something, something" -- as a string

This is perhaps a real slow-down.

If you just "flip your list/string" thinking (see number 2. below), you'll
be to a more conventional way of doing things, and therefore maybe a faster
way.

Get your DATA into a list, like:

{"something", "something", "something"}

and then you don't even need the text item delimiters to "break" the big
string into small pieces.

Instead, you can just use:

if item i of logolist = graphic

and not: if text item i of logolist = graphic


See, a text item delimiter "delimits a text item" (not being facetious,
just reminding you that the language is the clue.)


You want to be "delimiting" (so to speak) a list. Yes, the list in AS uses
a ", " to separate its items, but you just refer to item 1, item 2, item x
and the "delimiting" is done for you.


I think the text item delimiters is the slow way.


2. I don't know why you are setting the delimiters to a list, even given
that your data is (probably) a big text string. This is not needed.
(Whether it adds time of any human-noticeable duration I doubt in this
instance.) There is no need to coerce a text item delimiter to a list. (I
don't even know why that works, except AS is smart enough to just ignore the
incident and move along.) Just say this:

set AppleScript's text item delimiters to "" -- or whatever string



Basically, remove the AppleScript's text item delimiter lines, change
instances of 'text item i' to 'item i', make sure your errorlist and
logolist are really _lists_ ( {"graphic","graphic","graphic",...} ) and
see what that does.


Making those changes shortens your code for sure and I think will make these
processes faster.


HTH
--
Gary

Incoming replies are auto-deleted.
Please post directly to the list or newsgroup.
_______________________________________________
applescript-users mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/applescript-users
Do not post admin requests to the list. They will be ignored.

  • Follow-Ups:
    • Re: Faster List Checking
      • From: John Stewart <email@hidden>
  • Prev by Date: Faster List Checking
  • Next by Date: RE: Faster List Checking
  • Previous by thread: Faster List Checking
  • Next by thread: Re: Faster List Checking
  • Index(es):
    • Date
    • Thread