2011-09-20 165 views
1

我有許多文本文件,裏面填充了sudo表格,就像下面的例子。將表解析成類似散列或數組的東西的最好方法是什麼?解析文本文件

難道我寫了一個自定義算法還是有現有的庫在那裏?

PLACE NO. NAME     DIV RANK SWIM TRANS RANK BIKE MPH TRANS RANK RUN PACE TIME  
===== ===== ======================= === ==== ==== ===== ==== ======= ===== ===== ==== ====== ===== ======= 
    1  1 Krige Schabort   PCHAL 3 22:40 1:08 25 1:14:15 20.2 2:25 1 26:24 4:24 2:06:49     
    2 12 Kevin Moats    M5559 11 24:41 0:46 1 1:06:01 22.7 0:44 9 42:50 7:09 2:15:00     
+0

好像定點寬度平坦的文件給我。自從電腦建成以來,這些東西一直存在。看到這裏的建議:http://stackoverflow.com/questions/1609807/whats-the-best-way-of-parsing-a-fixed-width-formatted-file-in-java – Candide

+0

是否有您添加了一個理由標籤'紅寶石'你的問題?如果你想有一個紅寶石答案,你應該在問題中說明。我在窗戶上用紅寶石取得了很好的效果,因爲其他選項意味着我必須安裝Cygwin之類的東西,而且紅寶石已經到位。 – mliebelt

回答

1

如果格式是定長和內充滿了空間,那String#unpack

您可能會看到http://ruby-doc.org/core/classes/String.html#M001112的細節

+0

我喜歡解壓縮的想法,但我一直無法找出一個可行的解壓縮格式。 – jspooner

+0

@jspooner實際上perl的'perlpacktut'頁面給出了一個從字符串中提取固定寬度字段的例子,並且我還沒有使用過很多ruby的包。他們似乎很相似,雖然.. http://perldoc.perl.org/perlpacktut.html#Packing-Text – Jokester