Как экспортировать данные в файл prn (фиксированная ширина с заполнением пространства) в Rails

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

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

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

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

"бла фу бар" -> всего 18 символов

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

3 ответа

Решение

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

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

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

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

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

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

a = %w(blah foo bar)
a.pack("A6A8A4")
=> "blah  foo     bar "

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

C: \ Temp> ruby ​​-le "printf '[%-6s%-8s%-4s]', 'blah', 'foo', 'bar'"
[бла фу бар]
 |•••••|•••••••|•••
Другие вопросы по тегам