¿Cómo eliminar el último carácter de una cadena si sé cuál es el carácter en AppleScript?

2

Básicamente, estaba jugando con AppleScript y creé una variable basada en la ruta de la aplicación y siempre tiene una barra diagonal al final que no quiero. Vea mi otra pregunta para más información. Básicamente, thePath está configurado /Applications/MyEpicApp.app/con ese extra /que no quiero.

¿Cuál es el "opuesto" de "sometext" & someVariableen AppleScript?

Muchas gracias de antemano, aprecio cada pieza de información.

Prokop Hanzl
fuente

Respuestas:

6

Para que se devuelva una parte de la cadena, el formato sería:

set StringVariable2 to (characters n through n of StringVariable1) as string

nes importante el número de caracteres de la cadena que comienza en 1
as stringo de lo contrario se obtiene una lista de caracteres individuales devueltos

Solo asegúrese de que cada vez que analice cualquier texto, lista u otro elemento dentro de AppleScript para tener text item delimiterssu valor predeterminado (una lista vacía {}) a menos que también desee incluir esos caracteres en el resultado.

En su ejemplo de eliminar el último personaje, sería:

set StringVariable2 to (characters 1 through ((length of StringVariable1) - 1) of StringVariable1) as string
Fénix
fuente
@Alex Zavatone, eliminé tu edición por dos razones ... 1. Esta respuesta (y pregunta para el caso) realmente no tiene nada que ver con delimitadores de elementos de texto porque por defecto ya está {}o "". 2. Para empezar, no se cambió y, por lo tanto, ¡no es necesario hacer nada con él y es totalmente innecesario para esta respuesta!
user3439894
@ user3439894 La respuesta tiene mucho que ver con la respuesta, porque si el usuario ha establecido diferentes delimitadores de elementos de texto AppleScript, esto no funcionará. Es requiredestablecer los delimitadores de elementos a lo que mencioné o esto fallará. Mi edición proporcionó una solución completa. Lo anterior me falló porque los delimitadores de elementos de texto no eran "".
Alex Zavatone
@ user3439894 La razón por la que agregué esto en primer lugar es que la solución proporcionada no funcionó cuando la probé. Esto se debió a que había estado usando diferentes delimitadores de elementos de texto. Mis ediciones son el resultado de pruebas y verificaciones.
Alex Zavatone
@Alex Zavatone, realmente debo alinearme con user3439894 ya que el valor predeterminado es realmente una lista vacía y debido al hecho de que la respuesta había sido aceptada hace más de 2 años. Si bien estoy de acuerdo en que cambiar el delimitador de elementos de texto puede alterar el resultado, generalmente es una mala práctica cambiar algo y dejarlo modificado durante un tiempo prolongado a lo largo de su secuencia de comandos y luego "quejarse" de que algo no funciona como se anuncia. Por lo tanto, preferiría volver a cambiar el delimitador de elementos de texto tan pronto como haya terminado con él en esa sección y configurarlo nuevamente, si es necesario nuevamente.
Phoenix
1
@AlexZavatone y como user3439894 y ya lo expliqué, el valor predeterminado es una lista vacía. En general, es una mala práctica cambiarlo durante un tiempo prolongado, ya que esto tendrá un impacto negativo en muchas cosas dentro de AppleScript. La Guía del lenguaje AppleScript explica cómo funcionan los delimitadores de elementos de texto y se deriva de que cualquiera puede concluir que cambiarlos durante un tiempo prolongado traerá consigo un comportamiento inesperado. Le pido amablemente que no edite mi respuesta ya que con un buen uso práctico de los delimitadores de elementos de texto, no agrega ningún valor adicional a esta respuesta.
Phoenix