2010-11-19 7 views
0

J'ai un applescript qui obtient une chaîne à un point et vérifie s'il contient une autre chaîne que j'ai entré. Donc, disons que j'ai "Im une chaîne" et je veux rechercher si elle contient "chaîne". J'ai cela en utilisant "si searchString est en mainString puis ...."Applescript: vérifier si une chaîne contient une chaîne vide?

Mais si je le passe une chaîne vide, cela devrait être vrai quelle que soit la chaîne, mais pour une raison quelconque, il ne fonctionne pas.

Comment puis-je vérifier si une chaîne vide est dans une autre chaîne?

Répondre

2

Différentes langues vont gérer cela différemment, et ce que vous voyez ici, c'est comment Applescript le gère [1]. Toute chaîne vide est exactement celle-ci: vide. Applescript n'a aucune valeur dans "" (mais ce n'est ni une valeur nulle, ni une valeur manquante, il n'y a juste rien dedans). Si vous comparez deux chaînes vides, elles s'équivalent l'une à l'autre, sinon une chaîne est vide ou elle ne l'est pas et une chaîne remplie ne peut contenir une chaîne vide.

Vous devrez vérifier si la chaîne de recherche est vide d'abord puis gérer cela en conséquence.

[1] REALbasic ne trouvera pas non plus de chaîne vide dans une chaîne remplie.

mise à jour par commentaire:

Oui, mais j'ai alwasys trouvé de mieux à faire les calculs de la condition en dehors du bloc if...then avec AppleScript:

set condition1 to true -- "true" being a calculation of some kind 
set condition2 to true 

if (condition1) and (condition2) then 
    -- do something 
end if 
+0

Merci! Est-il possible d'utiliser l'instruction if dans Applescript de la manière suivante: "if [condition 1] ou [condition 2] alors ..."? – sbonkosk

1

Qu'en est-il d'abord de vérifier si la chaîne de recherche est vide, puis de retourner 'true'?

Questions connexes