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

1voto

OBJETIVO:
. Quitar puntos del nombre de archivo (si los hubiera) usando AppleScript's text item delimiters

PROBLEMA:
El flujo no pasa por una condición previamente comprobada como cierta. (???)

OBSERVACIONES:
Si se anula la condición expresada en if.. end if, el flujo funciona bien; sin embargo quisiera que el código comprobara si el nombre de archivo contiene puntos (al margen del punto que separa la extensión)

Agradecería ayuda para localizar y corregir el error

tell application "Finder" to set nombreCompleto to name of (selection as alias) -- nombre+extensión inicial
--> 1.2.3.4.5.6.7.srt

set {TID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, "."}

set soloNombre to text items 1 thru -2 of nombreCompleto -- Aísla el nombre de la extensión
--> 1.2.3.4.5.6.7

if soloNombre contains "." then -- En la sentencia anterior se comprobó la existencia de "." en soloNombre
    say "Entrando en declaración if " --    EL FLUJO NO  PASA POR AQUÍ (???)

    cambiarTexto of soloNombre from "." to " "
    set nuevoSoloNombre to result
    set nuevoNombreCompleto to (nuevoSoloNombre & AppleScript's text item delimiters & (last text item of nombreCompleto) as string) as string

    tell application "Finder" to set name of (selection as alias) to nuevoNombreCompleto
end if

set AppleScript's text item delimiters to TID

to cambiarTexto of elTexto from BuscarCadena to ReemplazarCadena
    set antDelims to AppleScript's AppleScript's text item delimiters
    set AppleScript's AppleScript's text item delimiters to BuscarCadena
    set nuevoTexto to text items of elTexto
    set AppleScript's AppleScript's text item delimiters to ReemplazarCadena
    set nuevoTexto to nuevoTexto as text
    set AppleScript's AppleScript's text item delimiters to antDelims
    return nuevoTexto
end cambiarTexto

1 Respuesta

1voto

DJUNQUERA Puntos2290

:-))

¡Encontré el fallo!
Se trata de un error propio de los que aún nos queda largo camino por recorrer para salir de la fase de principiante.

Basta con hacer la siguiente corrección:

if (soloNombre as string) contains "." then…

o bien

if "." is in (soloNombre as string) then…

Ojalá que a alguien le haya servido de provecho.
Salud.

0voto

Peter comentado

Gracias por compartir la solución! Por favor selecciona la respuesta para marcarla como resuelta.

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

Otras Preguntas y Respuestas


...