Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Oracle
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-03-2013
cd.rafael cd.rafael is offline
Miembro
 
Registrado: abr 2012
Posts: 59
Poder: 13
cd.rafael Va por buen camino
quitar caracteres especiales

Cordial Saludo,

Estoy tratando de hacer una función que me permita eliminar los carateres especiales en un string. Ej.

Si tengo la siguiente cadena:

a!bc#1.2"3/*-

Necesito que quede:

abc123

Tengo la siguiente consulta, pero el problema es que me elimina también los números:

select
REGEXP_REPLACE(REPLACE(UPPER (UTL_RAW.CAST_TO_VARCHAR2 ((NLSSORT('a!bc#1.2"3/*-', 'nls_sort=binary_ai')))), ' ', ''), '[^A-Z]', '')
from
DUAL;

Agradezco de antemano cualquier colaboración.
Responder Con Cita
  #2  
Antiguo 05-03-2013
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Has probado poner [^A-Z0-9] en lugar de [^A-Z]?

// Sludos
Responder Con Cita
  #3  
Antiguo 05-03-2013
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Estimado cd.rafael :

Yo utilizo la siguiente función que algún publicó alguien aquí en el foro.

Código Delphi [-]
function EliminarCaracter(const cadena: string) : string;
const
CA = '^,<>/_:;.()!"$%&=?¿¡*+';
CB = '                      ';
var
Ch: Char;
L, P: Integer;
Source, Dest: PChar;
begin
L := Length(cadena);
SetLength(Result, L);
Source := Pointer(cadena);
Dest := Pointer(Result);
while L <> 0 do
begin
Ch := Source^;
P := Pos(Ch, CA);
if P > 0 then
Dest^ := CB[P]
else
Dest^ := Ch;
Inc(Source);
Inc(Dest);
Dec(L);
end;
end;

Esta cambia el carácter por un espacio.
En CA colocas los caracteres que quieres cambiar y en CB el que quieres que aparezca.
Ojalá te sirva.

Saludos
Responder Con Cita
  #4  
Antiguo 05-03-2013
cd.rafael cd.rafael is offline
Miembro
 
Registrado: abr 2012
Posts: 59
Poder: 13
cd.rafael Va por buen camino
Cordial Saludo,

Gracias a todos. Coloqué [^A-Z0-9] como dijo roman y funcionó de maravilla.

Mil Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Uso de carácteres especiales mblascog Varios 2 05-06-2011 10:13:09
Comando like con caracteres especiales comba SQL 2 25-05-2007 19:17:01
Caracteres especiales en componentes nazosoto Varios 7 09-08-2006 13:30:32
No se ven bien los caracteres especiales... mlara Windows 0 10-10-2004 04:59:30
Caracteres especiales Scotty_thedog Impresión 2 15-08-2004 10:53:54


La franja horaria es GMT +2. Ahora son las 12:46:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi