Ci provo
codice:
Option Explicit
app.ClearTrace
dim alb, sCF1, sCF2
set alb = app.GetCurrentAlbum
sCF1 = "Materiale" ' Primary sort key
sCF2 = "Luogo di scatto" ' Secondary sort key
dim s, k
s = "This script will sort the current album using the custom fields '"
s = s & sCF1 & "' and '" & sCF2 & "'" & chr(13)
s = s & "This album will be used: " & alb.sAlbumTitle & " (" & alb.FullName & ")" & chr(13)
s = s & "Click Yes to proceed" & chr(13)
s = s & "Click No to abort"
k = MsgBox( s, vbYesNo, "SortOnCF" )
if k = vbYes then
dim i, nbPic, pic, pic2, nDone, d1, d2
nbPic = alb.nbPicture
app.Trace "Pictures to process: " & nbPic
' Very simple sort using two loops
app.Trace "Started at: " & Time
do
nDone = 0
for i = 0 to nbPic-2
Set pic = alb.GetPicture(i)
Set pic2 = alb.GetPicture(i+1)
d1 = pic.GetCustomField(sCF1)
d2 = pic2.GetCustomField(sCF1)
'app.Trace d1 & " " & d2
if d2 < d1 then
alb.MovePicture pic2, i, False
nDone = nDone + 1
else
if (d2 = d1) and (pic2.GetCustomField(sCF2) < pic.GetCustomField(sCF2)) then
alb.MovePicture pic2, i, False
nDone = nDone + 1
end if
end if
next
app.Trace "Sorting... " & nDone & " pictures moved"
loop until nDone = 0
alb.Redraw
app.Trace "Finished at: " & Time
app.Trace "Done !"
end if