appleScript vraagje 2

Ik ben bezig met een droplet die .srt om zet in .stl. Om te beginnen heb ik een script gemaakt waarmee je het bestand dat je wilt gebruiken kunt selecteren en vervolgens controleren of de extensie wel .srt is. De code:

[code:1:e28f1d0e8b]
property extension_list : {"srt"}

on run {}
copy (choose file with prompt “Please choose SubRip file”) to the_file_chosen
set the item_info to info for the_file_chosen
if the name extension of the item_info is in the extension_list then
prompt_user(this_item)
else
beep
display dialog “This isn’t a SubRip file!”
copy (choose file with prompt “Please choose SubRip file”) to the_file_chosen
prompt_user(the_file_chosen)
end if
end run

on open the_file_chosen
set the item_info to info for the_file_chosen
if the name extension of the item_info is in the extension_list then
prompt_user(the_file_chosen)
else if the length of the_file_chosen > 1 then
beep
display dialog “Please choose only one file”
copy (choose file with prompt “Please choose SubRip file”) to the_file_chosen
prompt_user(the_file_chosen)
else
beep
display dialog “This isn’t a SubRip file!”
copy (choose file with prompt “Please choose SubRip file”) to the_file_chosen
prompt_user(the_file_chosen)
end if
end open

on prompt_user(the_file)
copy (read the_file) to message_text
return message_text
end prompt_user
[/code:1:e28f1d0e8b]

Mijn vragen:

-Als eerste wil ik weten waarom er maar één keer wordt gemeld dat er een verkeerd bestandsformaat is gekozen en niet bij elke keer dat er een verkeerde wordt gekozen. Nu is het zo dat nadat je de melding krijgt dat het geen SubRip bestand is je gewoon zonder foutmelding een bestand met de verkeerde extensie kunt kiezen.

-Als tweede heb ik geprobeerd om ervoor te zorgen dat er een foutmelding komt wanneer er meer dan één bestand op de droplet word gesleept. Ik krijg allen de volgende foutmelding:

[img:e28f1d0e8b]http://members.home.nl/skilip/Afbeelding.jpg[/img:e28f1d0e8b]

Wat gaat er mis?

Wedervraag: je maakt een droplet en vraagt daarin vervolgens om een file te selecteren. Misschien heb je er een goede reden voor, maar waarom niet het/de bestanden gebruiken dat je erop laat vallen?

Antwoord op je eerste vraag: Als dit, doe dan dat. Maar na dat? Als dat niet goed is wat dan? (Volg je nog?) Je zou daarvoor eerder een repeat loop in bouwen. (Repeat until).

Tweede vraag: Laat je script het aantal items dat je erop laat vallen tellen.

Misschien kun je hier iets mee?
Succes.

[code:1:43e10ae3a5]on open fileList
set num_of_Files to (number of items in fileList)
if num_of_Files > 1 then
quit script
else
repeat with oneFile in fileList
set the item_info to info for oneFile
if the name extension of the item_info is in the extension_list then
beep 2
else
beep 1
end if
end repeat
end if
end open[/code:1:43e10ae3a5]

PS: MIsschien is het goed om hier een te kijken.

Ik wil de droplet dezelfde eigenschappen als een gewoon programma, vandaar de 'on run' handler. Ik wil graag dat wanneer er een verkeerd bestand of meer dan één bestand op wordt gesleept, dat het script wel gewoon door gaat en dat er een juist bestand kan worden geselecteerd. Ik ga even kijken wat ik met je script kan. Ik zal ook kijken achter de link die je me gaf. Alvast bedankt!