コードにはいくつか問題があります。まず、メモのテキスト項目を実際に要求することはありません :-) 生の文字列を取得するだけです。2 つ目はset AppleScript's text item delimiters to "space"
、テキスト項目の区切り文字を文字列リテラルに設定することspace
です。したがって、たとえば、実行中
set AppleScript's text item delimiters to "space"
return text items of "THISspaceISspaceAspaceSTRING"
戻り値
{"THIS", "IS", "A", "STRING"}
" "
第二に、代わりにを持っていたとしても、改行ではなく"space"
スペースで文字列を分割します。たとえば、実行中
set AppleScript's text item delimiters to " "
return text items of "This is a string
which is on two lines."
戻り値
{"This", "is", "a", "string
which", "is", "on", "two", "lines."}
ご覧のとおり"string\nwhich"
、単一のリスト項目です。
あなたがやりたいことをするために、あなたはただ使うことができますparagraphs of STRING
; たとえば、実行中
return paragraphs of "This is a string
which is on two lines."
希望を返します
{"This is a string", "which is on two lines."}
今、私はあなたが何をしたいのか正確にははっきりしていません。特定の人のためにこれを取得したい場合は、次のように書くことができます
tell application "Address Book"
set n to the note of the first person whose name is "Antal S-Z"
return paragraphs of n
end tell
はコマンドであると思いますparagraphs of ...
が、最初の行はすべてプロパティ アクセスです。(正直に言うと、私は通常、試行錯誤を経てこれらのことを発見します。)
一方、グループ内のすべての人についてこのリストを取得したい場合は、少し難しくなります。大きな問題の 1 つは、メモを持っていない人missing value
が文字列ではないメモを受け取ることです。これらの人々を無視したい場合は、次のループが機能します
tell application "Address Book"
set ns to {}
repeat with p in ¬
(every person in group "Test Group" whose note is not missing value)
set ns to ns & {paragraphs of (note of p as string)}
end repeat
return ns
end tell
ビットは、every person ...
関連する人々を取得して、それが言うことを正確に実行します。note of p
次に、メモの段落を抽出します (実際には文字列であることを AppleScript に思い出させた後)。この後、 のns
ようなものが含まれます{{"Test 1", "Test 2"}, {"Test 3", "Test 4"}}
。