0 votos

Applescript y SpeechRecognitionServer: lectura de un archivo como "escucha"

En lugar de la lista en

tell app "SpeechRecognitionServer to set theQueryList to listen for {"list item 1", "list item 2"...}

Me gustaría leer en un archivo de texto que contiene la lista. Algo así como

set theQueryList to read POSIX file "/Users/username/folder/text.txt"

El archivo text.txt contiene una lista, escrita como

"list item 1", "list item 2", ... "list item n"

sin corchetes y en formato utf8 (espero). (He creado el archivo haciendo un cat en el Terminal).

Esto funciona, en cierto modo. Es decir: Puedo mostrar la lista de text.txt en un diálogo, y puedo usarla en un bucle de repetición. Pero no activa el SpeechRecognitionServer cuando se habla. (No conozco una forma mejor de decir esto). Debo mencionar que cuando pego la lista de este archivo en el script, funciona bien. Así que los elementos de la lista no parecen tener la culpa ni cómo los digo.

Disculpas si estoy un poco confuso en mi redacción aquí. Agradezco sus ideas. Gracias.

0 votos

Su archivo tendrá que tener los datos codificados como un verdadero lista o si se trata de texto sin formato, tendrá que hacer algo para convertirlo en un archivo lista como obtener líneas/párrafos o dividir el texto utilizando los delimitadores de elementos de texto de AppleScript.

0 votos

Gracias. Está separado por comas, sin corchetes ni comillas. Cuando incluyo corchetes y/o comillas, el script agota el tiempo de espera -- o devuelve un error -1708, que al principio pensé que tenía que ver con la lectura del archivo en el bloque SpeechRecognitionServer tell, así que moví la sentencia read hacia arriba (el editor script es el propietario) y pasé el contenido del archivo línea abajo en una variable. Es interesante notar que cuando hago el archivo de un elemento de largo, funciona como un encanto. Hace bastantes años que no me meto en estas cosas; agradezco vuestra ayuda.

0voto

red_menace Puntos 111

Los elementos a escuchar tienen que estar en un lista por lo que tendrá que extraer los elementos del texto.

Si los elementos del texto están separados por caracteres de fin de línea:

list item 1
list item 2
list item 3
list item n

puedes coger los párrafos:

set theQueryList to paragraphs of (read POSIX file "/Users/username/folder/text.txt")

Si los elementos del texto están separados por comas (o tabulaciones, o lo que sea):

list item 1,list item 2,list item 3,list item n

puede utilizar la función de AppleScript text item delimiters :

set separator to "," -- the separating text
set fileText to (read POSIX file "/Users/username/folder/text.txt")
set {tempTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, separator}
set theQueryList to text items of fileText
set AppleScript's text item delimiters to tempTID -- restore original

0 votos

Brillante. Estoy agradecido. De verdad.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X