看板 Python 關於我們 聯絡資訊
※ 引述《walao81 (Male)》之銘言: : 簡單的整理一下我的問題: : 我寫了一個bbs client來取資料,取回來的資料打算用 readline 讀取一行之後, : 用 split() 來切割每個欄位,然後根據位置判斷這是什麼資料,資料長相如下: : 3 ˇOversea_Job 工作 ●海外工作版 11 duer/yearue/OA : 4 ˇSoft_Job 工作 ◎軟體工作。分享/詢問 20 TonyQ : ^ ^ ^ ^ ^ : ID 名稱 分類 次分類 版主 : 但是看起來似乎行不通,會有莫名的斷行,舉例: : 10 ˇHomeTeach 家教 ●板規多看 水桶少點 請勿盧解水桶 28 kurosaki1986 : 11 ˇshare 娛樂 ●[雪兒] 快來對統一發票 (後面換行了) : 6 onlysnoopyOD : (^ 換行我就趴了) : 因此realine之後再切割資料行不通,但是我沒找出一個共通的規則來分析資料欄位, : 用空白來切割也行不通,因為版標空格的數量不一定。 : 因此我的推斷為,ptt的換行符號與一般系統的 \n 或 \r\n 不一樣,應該有特定的 : protocol 讓 telnet 或 pcman 可以正常顯示。 : 有大大有相關的經驗嗎? 幾年前有和朋友一起寫了一個 web 界面的 BBS client,就是以瀏覽器上我架設的 網站後,server 便 telnet 到 BBS 站台,然後以 html 來呈現如同以其他 telnet client 軟體上 BBS 站所呈現的畫面,並且提供相同的鍵盤操作方式,並另外提供 替內文所出現的 url 加上 hyperlink 與文章/郵件列表的項目等加上 hyperlink。 為了實現這些功能,是需要去處理各畫面中的文字資料的,加上當初作這東西是為了 早期智慧型手機還不流行 BBS client 軟體的時候,想要讓人可以透過手機來使用 BBS,所以我門必須針對不同的類型的版面去設計一個呈現方式,使得在手機這般小 的螢幕上,可以在例如 30 x 16 的畫面下盡量呈現最多的資訊。這更需要去處理 各時刻呈現給 user 的畫面裡的文字資訊。 我們所採用的做法是,去 parse BBS/telnet server 的回應來作畫。也就是說程式 一開始是 maintain 一個 80 x 24 的畫布,這畫布是由 glyph plane(可以想成是 array of char array)與 color plane 所構成。任何時候送出數據到 BBS/telnet server 後,就依照 response 的內容來畫布上作畫,導致畫布的內容更新(有些 控制碼等於是移動畫筆,顏色相關控制碼則是變更 color plane),程式同時也 maintain 游標的位置。 需要去處理或是依照畫面裡的資訊來作判斷時,就可以從 glyph plane 裡取得當下 呈現給 user 的所有文字與位置。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.16.203 ※ 編輯: sbrhsieh 來自: 114.45.16.203 (09/17 01:51)
suzuke:推! 09/17 01:58
kilfu0701:推!! 09/17 03:52