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重复循环,该循环首先提取属性,然后调用显示通知。如果要使用一个或多个变量来包含我用作文本的部分,则可以通过在属性中包含文本来实现,就像普通字符串串联一样。然后在连接字符串时,将首先使用正确的属性创建脚本,然后在运行脚本时(第二级计算),将正确的属性返回到您选择的脚本属性中。