• Publicidad

Uso de printf para dar formato a línea de salida

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Uso de printf para dar formato a línea de salida

Notapor Ponciano » 2009-04-08 01:53 @120

Hola, yo de nuevo.

Deseo saber porqué no puedo alinear la impresión de un texto con printf(). Si uso el comando print() como a continuación describo

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print ${$seqs[$j]}[$i]);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


obtengo algo así, por ejemplo

Código: Seleccionar todo
hgñahdgpqoihgjrkvhuipabjkbigpgabopgbnqrpqbgjanronbqpobpueobbfknafd
npboqnebobnoqnf
vnoqrwenboainvdkldjvoiaknlbvofdnbdlvnoajlnkljvñnaobnlmvlncoibnufiadbbtnbabfnjnhymyirndf


Son secuencias alineadas y deseo usar printf() para darle formato a cada una de esas secuencias, de tal forma que no haya más de 40 letras por línea:

Código: Seleccionar todo
hgñahdgpqoihgjrkvhuipabjkbigpgabop
klgodinaoignoiagbnqnpboqnebkngibho
obnoqnf
vnoqrwenboainvdkldjvoiaknlbvofdnnb
abfnjnhymyirndfnbanobnfoljnbjknaoio
ymyirnd


Al escribir
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
printf("%.60s", ${$seqs[$j]}[$i]);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

aparece algo igual a lo que sale con print().
Ponciano
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2009-03-31 10:08 @463

Publicidad

Notapor explorer » 2009-04-08 05:48 @283

No te vale printf() para lo que quieres. printf() solo formatea una línea cada vez. No tiene el concepto de múltiples líneas.

En cuanto a cómo sacar trozos de un determinado ancho, ya te respondí al final de Últimas dudas.

Otra forma es usando formatos de Perl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $secuencia = <<END_SEQ;
hgnahdgfjfgsdgsdjfgsadfgskdjfsdpqoihgjrkvhuipabjkbigpgabopgbnqrpqbgjanronbqpobpueobbfknafdnpboqnebobnoqnf
vnoqrwenboainvdkldjvoiaknlbvofdnbdlvnoajlnkljvnnaobnlmvlncoibnufiadbbtnbabfnjnhymyirndf
END_SEQ

format STDOUT =
^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ~~
$secuencia
.

write;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Sale:
Código: Seleccionar todo
hgnahdgfjfgsdgsdjfgsadfgskdjfsdpqoihgjrk
vhuipabjkbigpgabopgbnqrpqbgjanronbqpobpu
eobbfknafdnpboqnebobnoqnf
vnoqrwenboainvdkldjvoiaknlbvofdnbdlvnoaj
lnkljvnnaobnlmvlncoibnufiadbbtnbabfnjnhy
myirndf
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Ponciano » 2009-04-08 06:54 @329

Gracias por la ayuda, ¡¡¡¡me ha quedado más claro y ya pude!!!!
Ponciano
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2009-03-31 10:08 @463


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados

cron