リストが空だった時の処理を分ける[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ですね。