ジャムスタ

just another mind Style

リストが空だった時の処理を分ける[AppleSprict][Evernote]

先に検索結果が空だった時の条件分岐からやっておきましょう。

 

(前回の状態)

set text2 to ""

set note1 to find notes "notebook:inbox"

    repeat with i in note1
        set text1 to HTML content of i
        set text2 to text2 & text1
    end repeat

 

これはfine notes の命令で何かノートが発見されることが前提となっています。もし何もノートが見つからなければ、「 HTML content of i」なんてものは存在しません。コンピューターだって「そんな命令だされても、内容取り出せませんよ。ノートないんですもの」という気分になってしまうでしょう。

 

というわけで、「もしノートがあったら」という条件を加えてみます。

 

使うのはif

 

if 条件文 then

 条件にあったときの命令

end if

 

こういう感じの構文です。さらに

 

if 条件文 then

 条件に合ったときの命令

else

 条件に合わなかったときの命令

end if

 

なんてこともできます。

 

条件文とは、たとえば「x = 1」のような感じですね。「もし、xの中に1が入っていたら、以下の処理をしちゃってください」という感じになります。ちなみにここに入るのは式の形になっているので条件文ではなく、条件式と呼びます。

 

この場合、検索結果を代入しているnote1の中身が空なのかどうかが問題です。

シンプルに考えれば

 

if note1 = {} then

end if

 

となりますね。

※中身が空のリストを表現したい時は{}とカッコだけを使います。

 

しかしこれだと、「もしnote1の中身がゼロだったらこうせよ」、なので

 

if note1 = {} then

 リストの中身が無かった時の処理

else

 リストの中身があったときの処理

end if

 

という風になります。

 

あるいは 条件式の頭にnotを付けて

 

if not (note1 = {}) then
 リストの中身があったときの処理

else

 リストの中身が無かった時の処理
end if

 

とやることもできます。なんとなく後者の方が気持ち的にフィットするので後者を採用しましょう。

 

さて、ノートの中身がない場合はどうしましょうか。「検索結果はありません」とメッセージを表示することにしましょう。

 

set text2 to "" 

set note1 to find notes "notebook:inbox"

    if not (note1 = {}) then
        repeat with i in note1
            set text1 to HTML content of i
            set text2 to text2 & text1
        end repeat
    else
        display dialog "検索結果はありません"
    end if

 

これでだいたいOKですね。