2009-10-22 3 views
1

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

Идея заключается в том, чтобы иметь:

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

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

 
"blah foo  bar " -> total 18 chars 

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

+0

это не показывая, но это было бы 2 места после «бэ» и 5 пробелов после «обув» в результирующей строке ... – X2theZ

ответ

1

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

Я тогда:

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

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

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

1

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

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

Посмотрите на массив # пачке:

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

Определенно самый краткий подход. Может быть трудно на глаза, но характер-счет трудно победить. – Jerome