如何在ruby中创建平面文件?
平面文件是每个字母放在文件中的特定列号。
例如,如果我正在从DB中读取一些值:
Name Class
-------------------
one A
two English
three Math
four Science
我想制作一个平面文件,其中名称在第1列到第10列之间,类在第20到30列之间。如何制作该文件?我知道如何写入文件但不知道如何写入文件......使用指定的列...?
我在MladenJablanović的回答中尝试了sprintf
C:\>ruby parse.rb
2342342423
SOMETHING
2342
01/03/2010SDSDFS
234234
sprintf on array 2342342423SOMETHING 2342 01/03/2010SDSDFS234234
答案 0 :(得分:3)
答案 1 :(得分:1)
如果您不想使用printf字符串,您还可以使用ljust和rjust方法。如果您有非字符串数据,则可能需要引入to_s调用,但此时printf可能会更好。
puts "#{name.ljust(10)} #{subject.ljust(10)}"
# => "Three English"
如果您发现自己需要更严格的格式并且熟悉perl或fortran的格式(我认为),您可能需要查看FormatR gem,它可以让您像这样格式化并且可以处理页眉,页脚,页面大小等。这是一个简单的snippit:
@) @<<<<<<<<<<<<<<<< @#.##
num, location, toe_size
结果
1) Market 3.50