Crystal从文件中从n行到n行

Ema*_*man 4 crystal-lang

如何在文件中获取特定行并将其添加到数组中?

例如:我想得到200-300行并将它们放在一个数组中.而在那个计数文件中的总行数.该文件可能非常大.

Joh*_*ler 5

File.each_line是一个很好的引用,但返回迭代器的变量不是最佳的,因为它留下了一个打开的文件描述符.这种方法可能会被删除.

然而,这种方法的屈服变体对此有好处:

lines = [] of String
index = 0
range = 200..300

File.each_line(file, chomp: true) do |line|
  index += 1
  if range.includes?(index) 
    lines << line
  end
end
Run Code Online (Sandbox Code Playgroud)

现在lines保持行,range并且index是文件中总行数.