Applescript 通过使用变量寻址属性,检索记录中属性的值
假设我有这样的记录:Applescript 通过使用变量寻址属性,检索记录中属性的值,applescript,Applescript,假设我有这样的记录: set my_record to {song1:"Song 1", song2:"Song 2", song3:"Song 3", book1:"Book 1", book2:"Book 2", book3:"Book 3"} set current_song to "song" & 2 return current_song of my_record 说 return song2 of my_record 。。我可以检索item1的值 现在我想通过使用变量寻
set my_record to {song1:"Song 1", song2:"Song 2", song3:"Song 3", book1:"Book 1", book2:"Book 2", book3:"Book 3"}
set current_song to "song" & 2
return current_song of my_record
说
return song2 of my_record
。。我可以检索item1的值
现在我想通过使用变量寻址来检索一个项
我试过这样的方法:
set my_record to {song1:"Song 1", song2:"Song 2", song3:"Song 3", book1:"Book 1", book2:"Book 2", book3:"Book 3"}
set current_song to "song" & 2
return current_song of my_record
但这会返回一个错误
我是否需要将字符串转换为其他类型,或者我正在尝试的是不可能的?不确定您在问什么,但至少您可以这样做,将唱片中的歌曲设置为变量。如果要更改属性,则可以通过第二级求值,通过
运行脚本
set {song2:ThisSong} to my_record
— populates ThisSong with the contents of the field song2
二级评估(未经测试)类似于:
run script "set {song" & 2 & ":ThisSong} to my_record"
— uses second level evaluation to construct the field label on the fly.
编辑这里是一个经过测试的示例,尽管我认为执行二级评估、传入和传出变量值应该会更容易一些,但这是我唯一能做到的
property mrec : {book1:"Tom Sawyer", book2:"Two twins"}
property thisBook : missing value
run script "set {book" & 1 & ": my thisBook} to properties of my mrec"
log thisBook
不知道你在问什么,但至少你可以这样做,把你的唱片中的一首歌设置成一个变量。如果要更改属性,则可以通过第二级求值,通过
运行脚本
set {song2:ThisSong} to my_record
— populates ThisSong with the contents of the field song2
二级评估(未经测试)类似于:
run script "set {song" & 2 & ":ThisSong} to my_record"
— uses second level evaluation to construct the field label on the fly.
编辑这里是一个经过测试的示例,尽管我认为执行二级评估、传入和传出变量值应该会更容易一些,但这是我唯一能做到的
property mrec : {book1:"Tom Sawyer", book2:"Two twins"}
property thisBook : missing value
run script "set {book" & 1 & ": my thisBook} to properties of my mrec"
log thisBook
我添加了一个工作示例。我添加了一个工作示例。
将我的书设置为{book1:“Tom Sawyer”,book2:“Two twins”}显示通知(我的书的book1)
上述代码的作用是,我想应用于多个记录项,如下:将我的书设置为{book1:“Tom Sawyer”,book2:“Two twins”}使用从1到my_books显示通知(“book”和“a_book”)长度的_book重复结束重复
我想用一个文字部分(“book”)和一个变量部分(“a_book”)组成标识符的名称。但是我的印象是这是不可能的。你能做到的唯一方法,就是我上面的方法,通过第二级计算,通过连接字符串构造一个脚本,然后运行,并将结果属性返回到调用脚本的属性中。您应该能够将我提供的代码段合并到一个重复循环中,该循环首先提取属性,然后调用显示通知。如果要使用一个或多个变量来包含我用作文本的部分,则可以通过在属性中包含文本来实现,就像普通字符串连接一样。然后“脚本将首先使用正确的属性创建,因为字符串被连接,然后当脚本运行时,正确的属性将返回到您选择的脚本属性中(第二级评估)。将my_books设置为{book1:“Tom Sawyer”,book2:“Two twins”}显示通知(my_books的book1)
上述代码的作用是,我想应用于多个记录项,如下所示:将my_books设置为{book1:“Tom Sawyer”,book2:“Two twins”}用一本_book重复,从1到my_books显示通知的长度(“book”&“a_book”)结束重复
我想用一个文字部分(“书),以及一个可变部分(“a_书”).但我的印象是这是不可能的..你能做到的唯一方法是我上面的方法,通过二级计算,通过连接字符串构造一个脚本,然后运行,并将结果属性返回到调用脚本的属性中。你应该能够合并我提供给你的int代码段o重复循环,该循环首先提取属性,然后调用显示通知。如果要使用一个或多个变量来包含我用作文本的部分,则可以通过在属性中包含文本来实现,就像普通字符串串联一样。然后将首先使用正确的属性创建脚本,因为字符串被连接,然后在脚本运行时(第二级评估),正确的属性将返回到您选择的脚本属性中。将my_books设置为{book1:“Tom Sawyer”,book2:“Two twins”}显示通知(my_books的book1)
上述代码的作用是,我想应用于多个记录项,如下:将my_books设置为{book1:“Tom Sawyer”,book2:“Two twins”}用一本_book重复,从1到my_books显示通知的长度(“book”&“a_book”)结束重复
我想用一个文字部分组成标识符的名称(“书”),以及一个可变部分(“书”).但我的印象是这是不可能的..你能做到的唯一方法是我上面的方法,通过二级计算,通过连接字符串构造一个脚本,然后运行,并将结果属性返回到调用脚本的属性中。你应该能够合并我提供给你的int代码段o重复循环,该循环首先提取属性,然后调用显示通知。如果要使用一个或多个变量来包含我用作文本的部分,则可以通过在属性中包含文本来实现,就像普通字符串串联一样。然后在连接字符串时,将首先使用正确的属性创建脚本,然后在运行脚本时(第二级计算),将正确的属性返回到您选择的脚本属性中。