• Publicidad

Problema con formato funcion sprintf()

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

Problema con formato funcion sprintf()

Notapor fgalves » 2006-09-25 13:59 @624

Hola a todos,
Tengo un string de 6 cáracteres y necesito truncarlo a 5, pero eliminando el carácter de más a la izquierda.
Por ejemplo:
pasando como entrada un string de 6 caracteres, el formato siguiente "%5.5" me trunca dicho string pero eliminando el carácter de más a la derecha.

Por lo tanto, quisiera saber si existe algun formato para sprintf que permita hacer eliminar el carácter de más a la izquierda y quedarme con los 5 de la derecha:
Por ejemplo :
BUSCAR --> salida deseada: USCAR

Muchas gracias a todos
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Publicidad

Notapor Perl user » 2006-09-25 15:22 @682

No te compliques, si lo que quieres es sólo extraer una subcadena utiliza substr.

perldoc -f substr

Saludos,
Marco A. Manzo
[email protected]
http://www.unixmonkeys.com/amnesiac/
Perl Programming Language
Perl user
Maestro honorario
Maestro honorario
 
Mensajes: 271
Registrado: 2004-11-03 21:11 @924

gracias por contestarme

Notapor fgalves » 2006-09-25 15:46 @699

Gracias por la respuesta, pero me temo que eso no me sirve.

Por ejemplo, la instrucción siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
printf '<%.5s>', "truncated";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
trunca la palabra e imprime únicamente trunc

Yo lo que estoy buscando es un formato para el comando sprintf que me permita, de un string de 6 caracteres, quedarme con los 5 últimos e ignorar el primero. Desgraciadamente el comportamiento por defecto consiste en truncar los últimos y quedarse con los primeros.

Muchas gracias de todos modos
Por cierto, ¡¡Viva México!!! Estoy casado con una mexicana de Puerto Vallarta.
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Notapor explorer » 2006-09-25 16:56 @747

No la hay.

Tendrás que usar substr( "truncated", -5 ); # cated
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 kidd » 2006-09-25 17:38 @776

Hola:

También podrías hacerlo con un regexp:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $string = "BUSCAR";

$string =~ s/^.*(.{5})$/$1/;

print $string;  #USCAR
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Pero la solución que te dieron con substr() sería la indicada para lo que buscas.
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México


Volver a Básico

¿Quién está conectado?

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