循环记录

时间:2016-10-18 15:11:47

标签: applescript

为什么我不能通过此脚本向我显示特定' Klasse'的记录列表?

我一直收到这个错误:

  

"错误"无法获得{{Klasse:\" 1X \",Fornavn:\" Anders \",Efternavn:\ " Andersen \",ElevID:\" 12345 \"}等等。" (我将错误从丹麦语翻译成英语)

set varElevnavnIDliste to {{Klasse:"1X", Fornavn:"Anders", Efternavn:"Andersen", ElevID:"12345"}, {Klasse:"1X", Fornavn:"Julius", Efternavn:"Nielsen", ElevID:"23442"}, {Klasse:"1X", Fornavn:"Allan", Efternavn:"Mortensen", ElevID:"32193"}, {Klasse:"1X", Fornavn:"Lukas", Efternavn:"Olsen", ElevID:"87263"}, {Klasse:"1X", Fornavn:"Victor", Efternavn:"Nielsen", ElevID:"34523"}, {Klasse:"3Y", Fornavn:"Kenneth", Efternavn:"Oddersen", ElevID:"23442"}, {Klasse:"3Y", Fornavn:"Thomas", Efternavn:"Johansen", ElevID:"23452"}, {Klasse:"3Y", Fornavn:"Johan", Efternavn:"Thomasen", ElevID:"76590"}, {Klasse:"3Y", Fornavn:"Charlotte", Efternavn:"Frandsen", ElevID:"78569"}, {Klasse:"3Y", Fornavn:"Mathilde", Efternavn:"Charlottesen", ElevID:"64569"}, {Klasse:"STAFF", Fornavn:"Poul", Efternavn:"Killegaard", ElevID:"45328"}, {Klasse:"STAFF", Fornavn:"Frederik", Efternavn:"Augustesen", ElevID:"75639"}, {Klasse:"STAFF", Fornavn:"Cornelius", Efternavn:"Bugesen", ElevID:"75630"}, {Klasse:"STAFF", Fornavn:"Rikke", Efternavn:"Hansen", ElevID:"74632"}, {Klasse:"STAFF", Fornavn:"Katja", Efternavn:"Steffensen", ElevID:"65939"}}

set varResult to {}
repeat with iPar2 from 1 to (number of items in varElevnavnIDliste)
    if item 1 of varElevnavnIDliste contains {Klasse:"1X"} then
        set end of varResult to Fornavn of varElevnavnIDliste
    end if
end repeat

choose from list varResult

1 个答案:

答案 0 :(得分:0)

两个错误:

  • 迭代元素为item iPar2 of varElevnavnIDliste,而非item 1 of ...
  • 对所请求元素的引用为Fornavn of item iPar2 of varElevnavnIDliste,而不是Fornavn of varElevnavnIDliste
set varResult to {}
repeat with iPar2 from 1 to (number of items in varElevnavnIDliste)
   if item iPar2 of varElevnavnIDliste contains {Klasse:"1X"} then
       set end of varResult to Fornavn of item iPar2 of varElevnavnIDliste
   end if
end repeat

这与

相同
set varResult to {}
repeat with iPar2 from 1 to (number of items in varElevnavnIDliste)
    set theItem to item iPar2 of varElevnavnIDliste
    if theItem contains {Klasse:"1X"} then
        set end of varResult to Fornavn of theItem
    end if
end repeat
使用repeat with ... in语法

或更干净。

set varResult to {}
repeat with iPar2 in varElevnavnIDliste
    if iPar2 contains {Klasse:"1X"} then
        set end of varResult to Fornavn of iPar2
    end if
end repeat