Comment dois-je écrire le texte en colonnes alignés en Perl?
Je suis en train d'écrire dans un fichier à partir de Perl. Je veux juste écrire les données dans l'onglet format délimité par des tabulations. Cependant, les données que je suis en train d'écrire a différentes longueurs et n'est pas de doublure.
Par exemple je suis en train d'écrire quelque chose comme ceci:
Name Education Fav_Car MoneyInBank
josh High School Porche 500
SomeOtherName PHD Hyundai 50000
Je veux juste que les données soient alignés avec les en-têtes que j'ai sur le dessus.
Je suis pour la sortie de données comme suit:
printf FILE ("%s%20s%20s\n", "Name", "Ed", "Car");
while (($name, $ed, $car) = $sth->fetchrow_array) {
printf FILE ("%s>>>>>>>>>>>>>%40s%40s\n", $name, $ed, $car);
};
Vous devez vous connecter pour publier un commentaire.
Données délimité par des tabulations (où les champs ne sont pas cohérents dans la durée) n'a pas de ligne lorsqu'il s'ouvre dans un éditeur de texte.
Solutions:
printf
avec la largeur de champ, ou formats).Par exemple, vous pouvez utiliser
La
-
après la%
provoque le terrain pour être justifié à gauche. Numéros (comme l'argent) sont généralement justifié à droite (qui est la valeur par défaut).Ont un look à la Perl format commande.
Ont un coup d'oeil à Perl6::Formulaire module CPAN.
Cette question précédente Quelles Sont Les Autres Langues Ont Des Caractéristiques Et Des Bibliothèques Ou Similaire À Perls Format sur stackoverflow peut aider.
En plus de façon C printf vous pouvez ajuster la largeur de façon dynamique avec "*",
Le printf cela comme en C. Pour 20 champs de caractère:
Si vous travaillez sous Linux, une solution simple serait d'utiliser colonne système de commande, avec l'option-t. il suffit d'imprimer l'espace séparé de table dans un fichier, et il suffit d'utiliser la colonne de commande sur ce fichier.