我应该如何解析Ruby中的固定长度记录文件?

dka*_*kam 2 ruby parsing

我想知道是否有人对在Ruby中解析具有固定长度记录的文件有任何建议.该文件有几个部分,每个部分都有一个标题,n个数据元素和一个页脚.例如(这是完全废话 - 但内容大致相似)

1923  000-230SomeHeader     0303030 
209231-231992395    MoreData
293894-329899834    SomeData
298342-323423409    OtherData
3     3423942Footer record  9832422
Run Code Online (Sandbox Code Playgroud)

在此示例中,页眉,页脚和数据行均以特定数字(1,2和3)开头.

我查看了http://rubyforge.org/projects/file-formatter/它看起来不错 - 除了文档很轻,我看不到如何拥有n个数据元素.

干杯,丹

Ste*_*eet 9

有很多方法可以做到这一点.该unpack方法string可用于定义字段模式,如下所示: -

"209231-231992395    MoreData".unpack('aa5A1A9a4Z*')
Run Code Online (Sandbox Code Playgroud)

这将返回一个数组,如下所示: -

["2", "09231", "-", "231992395", "    ", "MoreData"]
Run Code Online (Sandbox Code Playgroud)

有关打包/解包格式的说明,请参阅文档.