Choices, Choices, Choices
Frank Leahy
frank at backtalk.com
Tue Feb 24 05:50:45 EST 2004
On Tuesday, February 24, 2004, at 05:52 AM,
use-revolution-request at lists.runrev.com wrote:
> I am starting a new project and have to decide the best way to store a
> lot of info for my button states and actions.
> right now I need to decide which is the best way to proceed???
>
>
> My Decision is between arrays (which I am new to understanding), Custom
> Properties (which seem complicated for this) and Simple storage
> containers from delimited text files (which I am used to). Any Help
> deciding??????
>
I have a similar situation with the photo album product I've written --
potentially hundreds or thousands of photos all with title,
description, size, etc. (12 fields in all), as well as a button
("include"). I store the data in a text file (on disk) that looks
something like this:
Version:1.0
accessGroup:[Choose A Group]
coverPhoto:IMG_2234 foo.jpg
date:2/23/04
description:
ftpServer:frank at 192.168.0.2
lastModified:1077572867
lastModifiedFormatted:2/23/04 at 947 PM
lastUploaded:
lastUploadedFormatted:Never
location:/Temporary Items/Test Albums/1-1
numPhotos:1
public:true
showInGallery:true
title:1-1
---
1_date:
1_description:
1_dimensions:650 x 433
1_exif:
1_file:IMG_2234 foo.jpg
1_fileLastModified:1077546932
1_geoURL:
1_imageLastTouched:1077572769
1_include:true
1_keywords:
1_size:176128
1_sizeFormatted:172.0K
1_title:Title 1
---
2_...
---
3_...
At runtime I read that data into an array that has one key for each
entry in the data file:
put "[Choose A Group]" into albumData["accessGroup"]
put "IMG_2234 foo.jpg" into albumData["coverPhoto"]
...
put xxx into albumData["1_date"]
put xxx into albumData["1_description"]
...
put xxx into albumData["2_date"]
put xxx into albumData[2_description"]
...
I find that reading and writing the arrays is simple and plenty fast
enough even with thousands of photos.
And arrays are a great thing to use at runtime. Notice that I've named
the keys in a way that makes it trivial to get or set any data I need
directly. If I need the title for photo 999, then it's as easy as
referencing albumData["999_title"]. And if I needed the titles for
photos 100 to 199, it's as easy as:
repeat with i = 100 to 199
get albumData[i & "_title"]
...do something with it...
end repeat
Hope this helps.
-- Frank
More information about the use-livecode
mailing list