Nido Apple

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

Ayuda para el manejo de los HANDLERS

--================================
--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

*)

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...