Как экспортировать данные в файл prn (фиксированная ширина с заполнением пространства) в Rails - PullRequest
1 голос
/ 22 октября 2009

Я нигде не видел, чтобы такого рода задачи выполнялись, и мне было интересно, как я могу экспортировать данные в формате .prn в RoR.

Идея будет иметь:

  • поле 1 -> длина: 6 символов -> содержимое: "бла"
  • поле 2 -> длина: 8 символов -> содержимое: "foo"
  • поле 3 -> длина: 4 символа -> содержимое: "bar"

и преобразовать его в строку, которая будет выглядеть так:

"blah  foo     bar " -> total 18 chars

Мне это нужно, потому что ERP, который я использую, принимает только поле данных фиксированной ширины.

Ответы [ 3 ]

3 голосов
/ 22 октября 2009

Посмотрите на Array # pack:

a = %w(blah foo bar)
a.pack("A6A8A4")
=> "blah  foo     bar "
1 голос
/ 23 октября 2009

Хотя оба ваших ответа хороши, я также нашел функцию ruby ​​ ljust () :

У меня тогда есть:

"blah".ljust(6)+"foo".ljust(8)+"bar".ljust(4)

Надеюсь, это поможет любому, кто нуждается в том же ...

Спасибо за помощь, ребята

1 голос
/ 22 октября 2009

Я не эксперт по Ruby, но, по крайней мере, есть sprintf :

C:\Temp> ruby -le "printf '[%-6s%-8s%-4s]', 'blah', 'foo', 'bar'"
[blah  foo     bar ]
 |•••••|•••••••|•••
...