Clarion - validar caracteres especiales en una cadena

 
Vista:

validar caracteres especiales en una cadena

Publicado por GIRALDO BRAVO (21 intervenciones) el 27/02/2011 15:26:05
Cordial saludo, les agradezco me colaboren hacerca de como validar en una cadena para que solo permita letras y numeros.

nuevamente gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:validar caracteres especiales en una cadena

Publicado por Marcelo Madelon (572 intervenciones) el 28/02/2011 12:24:49
Giraldo Bravo

Uso dos dos variables para este ejemplo
Una LOC:String tipo string de 120 caracteres, que es con la que ingreso el dato

La otra que voy a usar para cargar los caracteres que quiero filtrar la defino:
LOC:Palabra Data Type: Group de 120 caracteres
y va a contener una sola variable de (Letra) un caracter y Dimension = 120

y el código seria algo asi

LOC:Palabra = '' ! Inicializo
I# = 0 ! Inicializo
LOOP C# = 1 TO 120 BY 1 ! Recorro LOC:String
IF Sub(LOC:String,C#,1) > ' ' ! Si no queres los espacios quita este IF
If Sub(LOC:String,C#,1) < '0'
Cycle
End
END
I# += 1
Letra[I#] = Sub(LOC:String,C#,1)
End ! Loop

! te lo muestro en un message para que lo puedas ver

Message ('lo que encontré es: ' & LOC:Palabra) ! Muestro la variable y no el registro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:validar caracteres especiales en una cadena

Publicado por Marcelo Madelon (572 intervenciones) el 28/02/2011 17:05:09
Giraldo

Fijate que aca modifique el codigo para filtrar solo numeros y letras

LOC:Palabra = ''
I# = 0 ! Inicializo
LOOP C# = 1 TO 120 BY 1
IF Sub(LOC:String,C#,1) > ' '
Case Sub(LOC:String,C#,1)
OF '0' TO '9'
I# += 1
Letra[I#] = Sub(LOC:String,C#,1)
OR:Caracter = Letra[I#]
OF 'A' to 'z'
I# += 1
Letra[I#] = Sub(LOC:String,C#,1)
OR:Caracter = Letra[I#]
OF 'ñ'
I# += 1
Letra[I#] = Sub(LOC:String,C#,1)
OR:Caracter = Letra[I#]
OF 'Ñ'
I# += 1
Letra[I#] = Sub(LOC:String,C#,1)
OR:Caracter = Letra[I#]
End ! Case
END ! IF
End ! Loop


! te lo muestro en un message para que lo puedas ver

Message ('lo que encontré es: ' & LOC:Palabra) ! Muestro la variable y no el registro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Pablo Dante

RE:validar caracteres especiales en una cadena

Publicado por Pablo Dante (108 intervenciones) el 18/05/2024 18:10:19
Hola Marcelo
Te hago una consulta respecto al ejemplo para utilizarlo para reemplazar por ejemplo la letra "Ñ" o "ñ" en un campos de una tabla; normalmente en el Apellido y Nombre; cómo haces para ir reemplazando dicho caracteres por el correcto!!?
Me refiero por ejemplo cuando volcás un archivo .csv; me sucede que hay caracteres como la letra "Ñ" y cuando los copia a la tabla o archivo ingresa cualquier cosa o sea unos símbolos raros. Lo que digo es; si biene una "Ñ" que copie un "Ñ" ... Hay algún ASCII en Clarion para tal efecto!!?
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 92
Bronce
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

RE:validar caracteres especiales en una cadena

Publicado por Martin (81 intervenciones) el 18/05/2024 19:41:19
Fijate si el archivo está guardado con la codificación Unicode UTF-8, si no es así tendrías que exportarlo y guardarlo con esta configuración para que al importarlo no te de error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Pablo Dante

RE:validar caracteres especiales en una cadena

Publicado por Pablo Dante (108 intervenciones) el 18/05/2024 22:31:24
Hola Martín
Si el archivo está codificado como UTF-8 pero igual no tiene efecto.
Desde Clarion, pregunto, existen funciones o métodos que evalúen si es cierto caracter y antes del Insert cambie a el caracter correcto!?
Estuve investigando pero encontré la funciones CHR y VAL por ahí me estaría faltando la captura de cada caracter de el String que se lee desde el ".csv"!!?
Saludos y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 403
Oro
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

RE:validar caracteres especiales en una cadena

Publicado por Marcelo Madelón (341 intervenciones) el 19/05/2024 23:05:36
Pablo

¿Los caracteres en cuestión se encuentran en el archivo CSV?
Son los que remplazan a: Ñ, ñ, á, é, í, ó, ú, Á... Ú
Debes reconocer que caracter usa Excel. Creo que ¥ corresponde a ñ si mal no recuerdo.
Si es así los podes remplazar antes de grabar el tps.

Avisame y vemos si te podemos ayudar.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Pablo Dante

RE:validar caracteres especiales en una cadena

Publicado por Pablo Dante (108 intervenciones) el 20/05/2024 14:49:35
Hola Marcelo, buen día.
En el archivolos caracteres que me referencias están bien no hay caracteres extraños.

Te paso un ejemplo de una de las líneas:
"RUSIÑOL DE M. MAGDALENA","[email protected]","F. LELOIR 25 MODULO F2","2996234099",27105456498,"0970011655000433060013"

Cómo verás la "Ñ" está bien pero cuando hace el insert desde Clarion ahí me lo cambia a "Ð" (sería la "Ñ" mayúscula).
Otro ejemplo es cuando resume la palabra "Barrio" en el archivo figura "Bº" pero cuando lo grava en la tabla lo pone así "".
Por eso preguntaba si existe alguna Función o Método tipo que valla reemplazando esos caracteresa raros por el correcto.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 403
Oro
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

RE:validar caracteres especiales en una cadena

Publicado por Marcelo Madelón (341 intervenciones) el 20/05/2024 16:19:56
Pablo

Dame un poco de tiempo que lo pruebo y veo si puedo ayudarte.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 403
Oro
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

RE:validar caracteres especiales en una cadena

Publicado por Marcelo Madelón (341 intervenciones) el 20/05/2024 22:17:09
Pablo

Hice un proceso para incorporar los vendedores desde un scv y no he tenido problemas.
Te paso una imagen de como lo tengo configurado en el dct y el resultado donde podes ver
que graba bien las Ñ, @ y º




Vendedor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Pablo Dante

RE:validar caracteres especiales en una cadena

Publicado por Pablo Dante (108 intervenciones) el 21/05/2024 17:42:30
Hola Marcelo, buen día
Lo tengo definido de la misma forma que en la imágen que adjuntaste.
Y es raro no reconoce la Ñ como vos me mostras...!? :(
Una pregunta ...
En las líneas del archivo lo que es caracter está entre comilla dobles "palabra" y lo que numerico no... no será eso!!?
Ah! la codificación es ANSI.
Raro voy a seguir investigando algo debe ser...
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Pablo Dante

RE:validar caracteres especiales en una cadena

Publicado por Pablo Dante (108 intervenciones) el 21/05/2024 18:40:48
Hola Marcelo
Ya le encontre la vuelta.
Utilice la función
1
CONVERTANSITOOEM(XXX:CampoString)
... y así de esa forma me toma las "Ñ" y guarda los datos bien.
El archivo ".csv" está codificado como ANSI.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar