2012-05-26 28 views
0

發佈代碼失去了導致問題的格式,複製了我在帖子中實際上應該做的事情。爲了解決這個問題,使用這個腳本不是一個選項,所以我上傳了一個腳本文件here,這個腳本文件內置了一個導致問題的例子。我會盡力傳達問題仍然存在。解析applescript中的段落不能按預期工作

我從mail.app中提取文本。我解析的郵件將在其內部日期的列表(其中包括):

2012/5/27

2012年5月28日

2012/5/29

5 /二千零十二分之三十

5/31/2012

6/1/2012

20年6月3日12

2012年6月4日

2012/6/5

2012/6/6

現在,我試圖讓日期到列表中。沒問題,我以爲......

下不工作:

使用段落沒有工作,返回的整個事情作爲一款

set AppleScript's text item delimiters to (ASCII character 13) -- (Carriage Return) 

set AppleScript's text item delimiters to (ASCII character 10) -- (LF) 

無論是分隔符的工作。我想知道'返回'的ASCII代碼究竟是什麼,所以我做了如下:

set rundates to「5/27/2012 5/28/2012 5/29/2012 5/30/2012 5/31/2012 6/1/2012 6/3/2012 6/4/2012 6/5/2012 6/6/2012 6/7/2012 6/8/2012 6/10/2012 6/11/2012「

set mylist to {} 

repeat with z from 1 to count of characters of rundates 
     copy (ASCII number (character z of rundates)) to end of mylist 
    end repeat 


--return mylist ---{53, 47, 50, 55, 47, 50, 48, 49, 50, 13, 53, 47, 50, 56, 47, 50, 48, 49, 50, 13, 53, 47, 50, 57, 47, 50, 48, 49, 50, 13, 53, 47, 51, 48, 47, 50, 48, 49, 50, 13, 53, 47, 51, 49, 47, 50, 48, 49, 50, 13, 54, 47, 49, 47, 50, 48, 49, 50, 13, 54, 47, 51, 47, 50, 48, 49, 50, 13, 54, 47, 52, 47, 50, 48, 49, 50, 13, 54, 47, 53, 47, 50, 48, 49, 50, 13, 54, 47, 54, 47, 50, 48, 49, 50, 13, 54, 47, 55, 47, 50, 48, 49, 50, 13, 54, 47, 56, 47, 50, 48, 49, 50, 13, 54, 47, 49, 48, 47, 50, 48, 49, 50, 13, 54, 47, 49, 49, 47, 50, 48, 49, 50} 

--- =====注意13s?所以這應該是正確的? ==== ---

所以我的分隔符使用13應該已經工作,但它沒有。

任何人有任何想法?

回答

1

我從你的ascii號碼的帖子中得到了不同的結果。其實現在這個applescript是unicode,我們現在使用「id」而不是ascii號碼。看起來你的角色是「8232」。因此,在獲取文本項之前,請在代碼中使用此代碼...

set AppleScript's text item delimiters to character id 8232 
+2

最近我遇到了一個轉換舊文本文件的人。 regulus6633在我開始使用之前發佈了他的答案,但您也可以設置多個分隔符來捕獲大多數行結尾,例如{return,linefeed,return&linefeed,character id 8233,character id 8232}。 – 2012-05-26 23:50:39

+0

如果您正在運行Snow Leopard或更高版本。 – adayzdone