2011-09-20 110 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