--================================
--ENTORNO INICIAL:
--El puntero (cursor) está en cualquier punto de la cadena del nombre de archivo de una ventana del Finder
-- Supongamos que llamamos COLA a la parte comprendida entre la posición del puntero en el nombre del archivo en el Finder y el último carácter del nombre del archivo (incluyendo la extensión).
--El OBJETIVO es determinar la porción comprendida entre la posición del puntero y el último carácter del nombre del archivo (excluyendo la extensión).
--El script funciona, pero cuando intento poner el código comprendido en la sentencia if.. else en forma de handler (ver la parte final) y ejecutarlo (ambos puestos como comentario para mostrarlos) no logro comprender por qué no funcional cuando intento su ejecución versionandolo como handler.
--Agradecería ayuda que me aclarara qué es lo que no he comprendido acerca de cómo invocar los handers y recoger sus resultados.
--================================
tell application "System Events"
key code 125 using {command down, shift down} -- Selecciona todo el resto a partir del puntero (incluye la posible extensión)
delay 0.2
keystroke "c" using command down -- copiado al portapapeles
delay 0.2
set cola to the clipboard
if cola contains "." then -- eliminar
set cola to (the reverse of every character of cola) as string
set x to the offset of "." in cola
set cola to (text (x + 1) thru -1 of cola)
set cola to (the reverse of every character of cola) as string
end if
--suprimir_extension(cola) -- La ejecución debería hacer la misma función que el código comprendido entre if... end if.
set tamCola to (length of cola)
key code 123 -- puntero retorna al comienzo de la cola
delay 0.1
-- luego, podrá ser seleccionada, copiada, cortada, eliminada, o enviar el puntero a su extremo final.
repeat tamCola times -- En este caso, Seleccionar la Cola
key code 124 using shift down
end repeat
end tell
(*
on suprimir_extension(nombreParcial)
if nombreParcial contains "." then
say "Entrando en instrucción if... endif" -- línea de control (¡¡¡el flujo no entra!!!)
set nombreParcial to (the reverse of every character of nombreParcial) as string
set x to the offset of "." in nombreParcial
set nombreParcial to (text (x + 1) thru -1 of nombreParcial)
set nombreParcial to (the reverse of every character of nombreParcial) as string
end if
return nombreParcial
end suprimir_extension
*)