Sort cards Numeric by (a mixed string)
Brian Yennie
briany at qldlearning.com
Sun Jun 6 19:02:13 EDT 2004
>> does nothing... no error, no resort... I assume because the mixed
>> strings cannot be evaluated as numbers...
>> What would be a work around...?? I could use some complicated parsing
>> routine but it would fail if another user decided to use a different
>> delimiter (in this case he's used a dot), so I need a global solution
>> that says to Rev -forget the alpha characters at the end of the
>> string, just use the numbers at the beginning. iViewMedia does this
>> automatically in its catalog system... i.e. it assumes if there are
>> numbers at the beginning to sort by numbers and "10*alphaChars"
>> follows "9*alphaChars", not "1*alphaChars" in any listing....
Here's one that's not too complicated:
put fld "photoFileName" into pFileName
## extract the numeric prefix
put empty into numericPrefix
repeat for each char c in pFileName
if (c is a number) then
put c after numericPrefix
else
exit repeat
end if
end repeat
## remove it from the original
if (numericPrefix is not empty) then delete char 1 to
length(numericPrefix) of pFileName
## pad it with zeros
repeat until length(numericPrefix) = 5
put "0" before numericPrefix
end repeat
## put it back on
put numericPrefix before pFileName
put pFileName into fld "photoSortField"
...
sort cards ... by fld "photoSortField"
HTH,
Brian
More information about the use-livecode
mailing list