0 votes

Comment combiner des éléments de texte dans un raccourci Siri sans sauter un caractère de jonction lorsqu'une valeur est vide ?

enter image description here

Je crée un fichier délimité par des tabulations à partir de rappels. Chaque élément de chaque rappel n'a pas une valeur, je m'attendais donc à ce que certaines lignes aient 2 caractères de tabulation l'un à côté de l'autre, mais au lieu de cela, je constate que différentes lignes se retrouvent avec différents nombres de valeurs parce que les cas où je devrais me retrouver avec 2 caractères de tabulation adjacents sont réduits à 1 caractère de tabulation.

Je suppose que je pourrais envelopper chaque élément dans une condition et insérer "null" ou autre. Y a-t-il une meilleure façon de procéder pour que le raccourci reste aussi simple que possible ?

D'ailleurs, je le fais en tant que raccourci Siri plutôt qu'en AppleScript (que j'ai également écrit) parce que le dictionnaire AppleScript des rappels ne gère pas les sous-tâches ou les sous-listes, prend des minutes à exécuter, et nécessite que l'application Rappels soit ouverte sur le bureau actuel (si je veux qu'elle se termine dans un délai raisonnable) alors que le raccourci Siri s'exécute en arrière-plan en quelques secondes et que peut traiter les sous-tâches/listes.

0voto

hepcat72 Points 1077

Il n'y a apparemment aucun moyen de savoir combine pour ne pas ignorer les caractères de tabulation lorsqu'une valeur des éléments de texte à combiner est une chaîne vide. ont pour configurer des conditionnels qui vérifient les valeurs vides et fournissent une valeur de chaîne par défaut (par ex. null ) pour que le nombre de caractères de tabulation dans la sortie reste cohérent. Vous pouvez ensuite supprimer ces valeurs plus tard à l'aide d'une regex sur la sortie texte combinée, si vous voulez vraiment des caractères de tabulation simultanés.

Suggestion alternative

Cela dit, j'ai finalement décidé de produire des données au format json (au lieu d'être délimité par des tabulations) et j'ai utilisé un fichier de type Dictionary pour définir toutes les valeurs de la "colonne". J'ai ajouté ce dictionnaire à une liste. Après la boucle de rappel, j'ai créé un nouveau dictionnaire externe et défini une clé où la liste de dictionnaires de rappel était la valeur.

Notez simplement que si vous avez une liste (par exemple de titres de rappels), et que cette liste contient 0 ou 1 élément, vous vous retrouvez avec un problème similaire. Au lieu des onglets manquants, votre liste en JSON est enregistrée comme une simple chaîne, et vous devez utiliser une expression régulière sur le JSON stringifié pour corriger la valeur de la chaîne afin d'en faire une liste JSON correcte (pour que le json soit cohérent).

Par exemple, le JSON debe être ceci :

{"listA": [], "listB": ["single value"], "listC": ["value1", "value2"]}

Mais à moins que vous ne le corrigiez, l'épellation d'un dictionnaire avec des valeurs de liste (par exemple, listeA (0 élément), listeB (1 élément), et listeC (2 éléments)) produira :

{"listA": "", "listB": "single value", "listC": ["value1", "value2"]}

Vous devez donc effectuer 2 étapes de remplacement de regex pour :

  • Remplacer "listA":"" avec "listA":[]
  • Remplacer "listB":"([^"]+)" avec "listB":["$1"]

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X