2009-10-22 6 views
1

Je ne voyais pas ce genre de tâche effectuée nulle part et je me demandais comment exporter des données dans un format de fichier .prn dans RoR.Comment exporter des données dans un fichier prn (largeur fixe avec remplissage d'espace) dans Rails

L'idée serait d'avoir:

  • champ 1 -> Longueur: 6 caractères -> Contenu: "bla"
  • champ 2 -> Longueur: 8 caractères -> Contenu: "foo"
  • champ 3 -> longueur: 4 caractères -> contenu: "bar"

et le convertir en une ligne qui serait comme:

 
"blah foo  bar " -> total 18 chars 

J'ai besoin de cela parce que l'ERP que j'utilise n'accepte que les champs de données de largeur fixe.

+0

ce n'est pas montrant mais il serait 2 places après « bla » et 5 places après « foo » dans la ligne résultant ... – X2theZ

Répondre

1

Alors que vos deux réponses sont bonnes, j'ai aussi trouvé la fonction rubis ljust():

J'ai alors:

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

Hope it helps toute personne ayant besoin de la même chose ...

Merci pour l'aide les gars

1

Je ne suis pas expert Ruby, mais à tout le moins, il est sprintf:

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

Regardez paquet Array #:

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

Certainement l'approche la plus concise. Peut être dur pour les yeux, mais le nombre de personnages est difficile à battre. – Jerome

Questions connexes