martes, 15 de noviembre de 2011

Extraer números de una cadena con Power Builder

Bueno con este material les mostrare como extraer solamente los caracteres numéricos de una cadena de texto. Primeramente crearemos una función que se llame por ejemplo fn_devolver_solo_nro()
Return: double
Parametros:
Pass by: value - Type: string - Name: cadena
// Funcion para retornar solamente caracteres numericos de una cadena
// @author: Robert Galeano Fernandez - @rgfpy
// Version: 18-08-2011 10:25
string vretorna
long cant_letras, i
string parte_letra

cant_letras = len(cadena)

FOR i=1 to cant_letras
  parte_letra = mid(cadena, i, 1)
  
  IF isnumber( string(parte_letra) ) then
    vretorna += parte_letra
  END IF
NEXT
return double(vretorna)
Bueno recibimos como parámetro en la variable cadena el valor del texto el cual procesaremos en el script. La idea básica es conocer cuantas caracteres posee la cadena y de ahí pasar a recorrer cada una de ella e ir preguntando si ese carácter es del tipo numérico y si lo es ir almacenando para luego devolver los caracteres almacenados.

Explicando un poco el codigo con la funcion len() obtenemos la cantidad de caracteres de una cadena de texto, luego con el ciclo FOR ejecutamos asta esa cantidad. Con la funcion mid() obtenemos parte de una cadena en este caso en la posicion de nuestro vector i con una unidad, con la funcion isnumber() nos devuelve true en caso de que sea numerico la cadena que le pasemos como parametro.

Ejemplo de uso:
string cadena_string
integer cadena_int
cadena_string = 's1o2u3r4c5e6p7y'
cadena_int = fn_devolver_solo_nro(cadena_string)
messagebox('Result', cadena_string +' - '+ string(cadena_int))

No hay comentarios.:

Publicar un comentario