将数字前置到文件中

时间:2013-05-27 18:57:42

标签: ruby-on-rails

我一直在尝试打开文件,阅读内容,然后对该文件的内容进行编号并保存。例如,文件包含:

This is line 1.

This is line 2.

This is line 3.

输出应为:

  1. 这是第1行。
  2. 这是第2行。
  3. 这是第3行。
  4. 我对ruby非常陌生,所以我只能将数据添加到数组中。但现在我不知道如何为数组的每个项添加数字。这就是我所拥有的:

    class AddNumbers
      def insert_numbers_to_file(file)
        @file_array = []
        line_file = File.open(file)
        line_file.each do |line|
          @file_array << [line]
        end
      end
    end
    

    任何帮助或提示将不胜感激。 谢谢

2 个答案:

答案 0 :(得分:1)

调查员可以使用#each_with_index方法:

class AddNumbers
  def insert_numbers_to_file(file)
    @file_array = []
    File.open(file).each_with_index do |line, index|
      @file_array << "%d. %s" % [index, line]
    end
  end
end

答案 1 :(得分:0)

magic variable $.是您乘坐的机票:

class AddNumbers
  def insert_numbers_to_file(file)
    @file_array = []
    line_file = File.open(file)
    line_file.each do |line|
      @file_array << "#{$.}: #{line}"
    end
    @file_array
  end
end