0 votos

¿Cómo puedo limitar el número de resultados devueltos por una expresión de filtro cara en AppleScript?

En mi automatización de Notas de Apple en MacOS Big Sur, me gustaría cargar las 5 notas cuyo nombre contenga una subcadena. Por ejemplo, si sé que realmente tengo 5 notas que coinciden con la consulta, puedo escribir algo como esto:

tell application "Notes"
  set matches to id of (notes 1 thru 5 in default account whose name contains "a")
end tell

Esto se ejecuta relativamente rápido (< 1 segundo en mi cuenta con miles de billetes), porque termina tan pronto como encuentra esas 5 coincidencias y no busca más. A modo de comparación, una consulta sin dicha cláusula "1 a 5" (o una consulta de recuento) se agota antes de devolver cualquier resultado, lo cual es comprensible. Sin embargo, mi problema es que si no hay suficientes coincidencias (es decir, menos de 5), la consulta dará un error sin devolver ningún resultado:

Las notas tienen un error: No se pueden obtener las notas 1 a 5 de la cuenta por defecto cuyo nombre contiene "a". Índice inválido.

Por lo tanto, mi pregunta es si hay una manera de obtener "como máximo 5 resultados" en una sola consulta.

1voto

user3439894 Puntos 5883

Por lo tanto, mi pregunta es si hay una manera de obtener "como máximo 5 resultados" en una sola consulta.

No, no se puede hacer en una sola consulta.

Si quieres hacer un bucle de un recuento determinado hacia abajo, entonces lo siguiente ejemplo AppleScript código es como yo lo haría:

set maxNumber to 5
set searchString to "a"

set matches to missing value
repeat with i from maxNumber to 1 by -1
    if matches is equal to missing value then
        try
            tell application "Notes"
                set matches to id of ¬
                    (notes 1 thru i in default account ¬
                        whose name contains searchString)
            end tell
        end try
        if matches is not equal to missing value then exit repeat
    end if
end repeat

return matches

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