on creatlist ttext
_player.itemDelimiter="]"
temp=[]
temp_time=[]
temp_text=[]
gLrcText=[]--
gLrcTime=[]
ginfo=[]
repeat with i= 1 to ttext.line.count
-- 我们是根据[]判断时间点的 ,如果不把包含[music]的行删掉
--该程序就会把 "[00:04.60]][music]"视为两个时间点
if ttext.line[i] contains "[music]" or ttext.line[i] ="" then
delete ttext.line[i]
end if
n= ttext.line[i].char[2]
---如果每行的第二个字符不时整形,那么就判断是词头,类似于
-- [ti:傻傻的我爱你]", "[ar:阿牛]
if voidp(integer(n)) then
K=I--获得lrc词头信息条款个数
add ginfo, ttext.line[i]
end if
end repeat
--时间信息从k+1行开始的
repeat with i =k+1 to ttext.line.count
---提取时间、歌词。m变量很重要,他获得每行时间点的个数,也就是说
-- 分割符"]"把每一行分割开,从而获得项目个数:
--line[i].item.count
m= ttext.line[i].item.count-1
repeat with j= 1 to m
--经过两次循环,巴每行的每个时间点和每行的歌词添加到列表
add temp_time,ttext.line[i].item[j]
add temp_text,ttext.line[i].item[m+1]
end repeat
end repeat
---
repeat with i in temp_time
delete i.char[1]
---转换时间点函数
m=convertToTime(i)
add temp,m
end repeat
--为了能使时间点与歌词相对应,借用傲骨函数,我自己没能写出来,
--并且拐了个大弯儿
n= AGgetDimenList(#colum,[temp , temp_text])
n.sort()
repeat with i= 1 to n.count
add glrctime,n[i][1]
add glrctext,n[i][2]
end repeat
put ginfo
put glrctime
put glrctext
end
|