在Ruby中的文件IO期间读取下一行

时间:2017-06-29 06:56:18

标签: ruby-on-rails ruby file

我正在尝试使用ruby导入文件并解析它。有没有办法在文件导入中读取下一行?基本上我想看看特定的行是否在另一条重要行的x行内。就像“x短语”一样,在“y短语”的10行内。我没有看到这样做的方法 - 我知道Java很简单。 谢谢!

2 个答案:

答案 0 :(得分:1)

读取文件的行

lines_array = IO.readlines('testfile')
lines_array.each { |l| #Do your stuff with your line }

Ruby Docs on IO

答案 1 :(得分:1)

您也可以尝试:

<?php

$yourArray = array (
    array (
        'ID' => 322,
        'Number' => 1,
        'Date' => '3117-01-41',
        'example' => 'Hello'
    ),
    array (
        'ID' => 123,
        'Address' => '1283 street, 576',
        'Date' => '1717-05-21',
        'country' => 'Canada'
    ),
    array (
        'ID' => '007A',
        'Number' => 42,
        'Date' => '2005-11-24',
        'example' => 'Some Text'
    ),
    array (
        'ID' => '999AAA',
        'Number' => 492,
        'Date' => '3117-01-21',
        'example' => array(
            'subID' => 45,
            'subAlias' => 'teste sub item'
        )
    )
);

$output = "";

function walkerFunction($item, $key) {
    global $output;
    $output .= $key . "->" . $item . PHP_EOL;
}

array_walk_recursive($yourArray, "walkerFunction");

echo $output;

web_contents = "c:\\path\\to\\your\\file.txt" File.open(web_contents).each_with_index do |line, i| line.chomp! puts "line #{line}, i #{i}" # Do whatever you want to here end 方法为您提供了一个索引.each_with_index,您可以使用该索引来跟踪文件中哪一行的位置。然后,简单的数学可以根据需要产生偏移量。