• Publicidad

Eliminar el último salto de línea de un texto

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

Eliminar el último salto de línea de un texto

Notapor colorado » 2011-05-07 14:19 @638

Tengo el siguiente código:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. open( PASS, "<   test.txt" );
  2. my @contenido = <PASS>;
  3. foreach my $linea (@contenido) {
  4.     chomp $linea;
  5.     print $linea;
  6. }
  7. close(PASS);
  8.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


test.txt:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
hola amigo
 
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Hasta ahí todo funciona bien, pero si el archivo tiene más de una línea, la cosa se complica:

test.txt:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
hola amigo
cómo estás
 
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


salida:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
hola amigocomo estas
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Lo que necesito es eliminar el salto de línea respetando las dos líneas para que quede así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
hola amigo
cómo estás
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
colorado
Perlero nuevo
Perlero nuevo
 
Mensajes: 73
Registrado: 2010-01-31 14:48 @658

Publicidad

Re: Eliminar el último salto de línea de un texto

Notapor explorer » 2011-05-07 14:28 @645

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.     print "$linea\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
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

Re: Eliminar el último salto de línea de un texto

Notapor colorado » 2011-05-07 15:21 @681

Pero así no lo quito, lo vuelvo a generar.

salida:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
hola amigo
como estas
 
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


y quiero:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
hola amigo
como estas
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Es decir, sin el último salto de línea.
colorado
Perlero nuevo
Perlero nuevo
 
Mensajes: 73
Registrado: 2010-01-31 14:48 @658

Re: Eliminar el último salto de línea de un texto

Notapor Cs4r_ » 2011-05-07 18:26 @810

Según he entendido esto podría servirte:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. open(PASS, "< test.txt" );
  2. my @contenido = <PASS>;
  3. close(PASS);
  4. for(my $i=0;$i<$#contenido;$i++) {
  5.     print $contenido[$i]; # imprime por pantalla con el '\n' propio de la linea
  6. }
  7. chomp($contenido[$#contenido]); # quita el '\n' final
  8. print $contenido[$#contenido];
  9.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4



Un saludo.
Avatar de Usuario
Cs4r_
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2011-03-20 10:17 @470

Re: Eliminar el último salto de línea de un texto

Notapor colorado » 2011-05-08 03:22 @182

:D perfecto Cs4r_ hace exactamente lo que quería

muchas gracias, tío.
colorado
Perlero nuevo
Perlero nuevo
 
Mensajes: 73
Registrado: 2010-01-31 14:48 @658

Re: Eliminar el último salto de línea de un texto

Notapor explorer » 2011-05-08 11:15 @510

No había entendido la pregunta.

Tengo esta otra versión (que no he probado):
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. open my $TEST, q[<], 'test.txt';
  2. local $/;             # modo 'slurp'
  3. my $test = <$TEST>;   # leemos todo
  4. close $TEST;
  5.  
  6. chomp $test;          # quitar el último
  7. print $test;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
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

Re: Eliminar el último salto de línea de un texto

Notapor colorado » 2011-05-08 13:18 @596

Gracias explorer, he probado esa versión y no funciona.

pero si cambiamos la línea 6, sí va:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. 6.chop $test;          # quitar el último
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


es decir, cambiar chomp() por chop().
colorado
Perlero nuevo
Perlero nuevo
 
Mensajes: 73
Registrado: 2010-01-31 14:48 @658


Volver a Básico

¿Quién está conectado?

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