Re: [求救] 如何將不同歷史訊息合併、甚至排列成一 …

看板Instant_Mess作者 (有話直說)時間17年前 (2008/09/15 19:59), 編輯推噓2(205)
留言7則, 2人參與, 最新討論串2/2 (看更多)
參考了專業大大的方式 用frontpage把訊息合併 一切都很順利 但是有一個狀況我一直沒辦法排除: 為什麼sessionID="x" x比較大的(新貼進去的)會顯示在最上面啊= = 用一樣的方式做了六個檔案只有一個正常讓新的顯示在最下面 其他五個都出現這種bug 是我哪裡做錯了嗎?(指令太長了用frontpage我沒有辦法看到最後面) 還是有推薦用什麼編譯器來處理 麻煩知道的板友告訴我 謝謝 ※ 引述《chiuling (chiu)》之銘言: : : 合併對話記錄前 : 不可不知的知識 : : 首先打開對話記錄的*.xml檔案,一開頭就會看到 : <?xml version="1.0"?> : <?xml-stylesheet type='text/xsl' href='MessageLog.xsl'?> : 不要動它們,接著看下一行 : ==============<Log FirstSessionID="數字" LastSessionID="數字">================= : 在聊天記錄裡,對話會被分為很多個段落, : 段落的計算方式是從 打開對話視窗聊第一句話~關掉對方視窗 就算一次 : ╭──────────────────────────────────╮ : │ 這個計數和日期無關,不會因為隔一天就從 1 計算,是會一直累計下去的 │ : ╰──────────────────────────────────╯ : 從這個例子來說 <Log FirstSessionID="1" LastSessionID="116"> : 1 和 116 就是對話段落的"起"與"迄"數字 : 也就是你們的累積的對話被分成116段這麼多~ : ╭──────────────────────────────────╮ : │ 雖然說這個計數和日期無關,但不同電腦和同一個人聊的記錄是分開計算的│ : │ 想要把分散的聊天記錄合併,這個數字就很重要,這會關係到對話記錄會不│ : │ 會按照你想要顯示的順序出現 │ : ╰──────────────────────────────────╯ : =====<Message Date="xxx" Time="xxx" …略… SessionID="x">…略… </Message>====== : msn每一句對話(按下enter送出就是一句),在對話記錄裡, : 都會被包在<Message></Message>裡面,看看下面的例子 : (為說明方便,文字我做了省略,並且為了清楚表達也將文字跳行 : 實際的內容,標籤都是連接著沒有跳行,可以打開自己的檔案對照看) : ╭────────────────────────────────────╮ : │<Message Date="…略…" Time="…略…" DateTime="…略…" SessionID="1"> │ : │<From> ﹋﹋﹋﹋﹋﹋ │ : │<User FriendlyName="這裡是發訊者的msn暱稱"/> │ : │</From> │ : │<To> │ : │<User FriendlyName="這裡是接訊者的msn暱稱"/> │ : │</To> │ : │<Text Style="font-family:微軟正黑體; color:#054002; "> 對話內容 </Text> │ : │</Message> │ : ╰────────────────────────────────────╯ : 在<Message></Message>還會有其它的標籤,在合併對話記錄時不需更動其它的標籤 : ╭──────────────────────────────────╮ : │ 註: │ : │ 我們稱被 "<" 和 ">" 符號包起來的文字為標籤, │ : │ 且結尾會用 "</" 和 ">" 包起來 │ : │ 例如:Message標籤 <Message></Message> │ : ╰──────────────────────────────────╯ : 前面有說過,聊天記錄裡,對話會被分為很多個段落, : 所以在關掉視窗前,所聊的每一句話都是同一個SessionID : 也就是在對話記錄裡會看到<Message></Message>的SessionID都是同樣的 : ╭───────────────────────────────────╮ : │ msn對話: │ : │ A:說 │ : │ 有颱風要來了 │ : │ B:說 │ : │ 是喔 │ : │ A:說 │ : │ 對啊,但是沒有颱風假,sad... │ : │ │ : │ 對話記錄.xml │ : │ <Message …略… SessionID="1">…略… 有颱風要來了</Text></Message> │ : │ <Message …略… SessionID="1">…略… 是喔</Text></Message> │ : │ <Message …略… SessionID="1">…略… 對啊,但是…</Text></Message> │ : ╰───────────────────────────────────╯ : 和前面一開始說的對話段落結合來看,檔案的結構就變成這樣 : ╭──────────────────────────────────╮ : │ <Log FirstSessionID="起數" LastSessionID="迄數"> │ : │ <Message …略… SessionID="1"></Message> │ : │ <Message …略… SessionID="1"></Message> │ : │ <Message …略… SessionID="1"></Message> │ : │ <Message …略… SessionID="2"></Message> │ : │ <Message …略… SessionID="2"></Message> │ : │ <Message …略… SessionID="2"></Message> │ : │ <Message …略… SessionID="3"></Message> │ : │ <Message …略… SessionID="3"></Message> │ : │ <Message …略… SessionID="3"></Message> │ : │ </Log> │ : ╰──────────────────────────────────╯ : : : 開始合併 : 對話記錄 : : 當你手上有好幾個同一個聯絡人但不同時間的對話記錄檔案, : 要先決定要把誰合併到誰 : ========================= 簡單型合併 ============================ : 所謂簡單型合併就是假設你手上有 a.xml 和 b.xml 都是跟甲聯絡人的對話記錄 : 而且兩個檔案的對話時間順序是一前一後 : 也就是說a.xml的時間都早於b.xml,所以要把b.xml的內容接在a.xml的後面 : 1.修改<Log>標籤 : 把a的對話段落的 迄數 + b的對話段落的 迄數 = 合併後對話段落的 迄數 : ╭────────────── 舉例來說 ──────────────────╮ : │ a.xml: <Log FirstSessionID="1" LastSessionID="116"> │ : │ b.xml: <Log FirstSessionID="1" LastSessionID="89"> │ : │ 合併後: <Log FirstSessionID="1" LastSessionID="205"> │ : ╰─────────────────────────────────────╯ : 2.修改 b.xml 的每一句對話的SessionID: : ╭─────────────────────────────────────╮ : │ <Message …略… SessionID = "b原來SessionID + a的迄數"> …略…</Message> │ : │ ﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹋﹌ │ : ╰─────────────────────────────────────╯ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.170.107.46

09/15 21:26, , 1F
會不會是時間的問題?「DateTime=」後面那串,好像會
09/15 21:26, 1F

09/15 21:26, , 2F
照這串的時間來排序。
09/15 21:26, 2F

09/16 09:13, , 3F
我猜應該不是 因為都有照時間來啊
09/16 09:13, 3F

09/16 16:11, , 4F
我說的是「DateTime="2008-09-13T14:10:15.609Z"」這
09/16 16:11, 4F

09/16 16:11, , 5F
樣一串東西,不是文章裡寫的「Date=」跟「Time=」,
09/16 16:11, 5F

09/16 16:11, , 6F
那串的時間跟「Time=」的時間有點不一樣…
09/16 16:11, 6F

09/16 16:12, , 7F
你核對一下吧。
09/16 16:12, 7F
文章代碼(AID): #18pauw4T (Instant_Mess)
文章代碼(AID): #18pauw4T (Instant_Mess)