• Publicidad

Comparacion de cadena de caracteres con ASCII

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

Comparacion de cadena de caracteres con ASCII

Notapor Skull118 » 2013-03-21 13:46 @615

Buenas tardes colegas programadores, soy nuevo en Perl, me he topado con un problema: tengo una linea dentro de un archivo .txt que contiene el carácter ASCII 12 como una especie de espacio o tabulación, pero no sé cómo determinar si la línea en cuestión posee este carácter o no.

Estuve googleando por muchas partes y no lo encontré, de hecho busque aquí antes de mandar la pregunta y me tope con %c que supuestamente poniendo el valor (12 en este caso) daba el carácter ASCII asociado, pero no tengo la mas mínima idea de cómo se utiliza la función no sé si es $variable=%c(12); (cosa que ya intenté y da este error: aborted due to compilation errors).


En resumen lo que necesito es verificar si $_ posee el carácter ASCII(12).

De antemano muchas gracias.
Skull118
Perlero nuevo
Perlero nuevo
 
Mensajes: 53
Registrado: 2013-03-21 13:38 @610

Publicidad

Re: Comparacion de cadena de caracteres con ASCII

Notapor explorer » 2013-03-21 15:35 @691

Bienvenido a los foros de Perl en Español, Skull118.

Para saber si una $linea contiene un carácter \x0C (12 en hexadecimal), puedes hacerlo así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $linea = "Un texto con carácter 12:\x0C";
  2.  
  3. if ($linea =~ /\x0C/) {
  4.     say "Sí está";
  5. }
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


En Perl no existe ninguna función que se llame %c. Lo más parecido a lo que quieres hacer es con la función chr().
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: Comparacion de cadena de caracteres con ASCII

Notapor Skull118 » 2013-03-21 16:35 @733

:shock: Muchas gracias, maestro, por tu ayuda, creo que será la primera de muchas :D Te comento lo siguiente: sí me detecto el carácter ASCII 12, pero en el compilador para Windows (quería usar Linux pero no me lo autorizaron), en la línea:

say "Sí está";

Me devuelve el error:

"Execution of (nombre de mi programa) aborted due to compilation errors."

Supongo que esta función es exclusiva para Linux. Estoy utilizando Perl Package Manager, y como editor Notepad++.

De antemano, muchas gracias por tu ayuda.
Skull118
Perlero nuevo
Perlero nuevo
 
Mensajes: 53
Registrado: 2013-03-21 13:38 @610

Re: Comparacion de cadena de caracteres con ASCII

Notapor explorer » 2013-03-21 18:30 @812

say() es una nueva función que traen los Perl superiores a Perl v5.10.

Para poder usarla, solo hay que poner

use v5.10;

o un

use feature 'say';

al principio del programa.

Un say() no es más que un print(), solo que nos pone un "\n" al final, de forma automática.
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: Comparacion de cadena de caracteres con ASCII

Notapor Skull118 » 2013-03-22 09:36 @442

:shock: Gracias maestro por la ayuda.
Skull118
Perlero nuevo
Perlero nuevo
 
Mensajes: 53
Registrado: 2013-03-21 13:38 @610


Volver a Básico

¿Quién está conectado?

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