28/03/08, 11:41:09
|
#1 (permalink)
|
Registrado: mar 2005
Mensajes: 209
|
replace que no funciona :(
hola, estoy intentando quitar las tildes y caracteres especiales en de un texto pero no me deja 
este código no funciona:
Código:
auxiliar=replace(auxiliar,"á","a")
auxiliar=replace(auxiliar,"Á","A")
sin embargo este otro si funciona:
Código:
auxiliar=replace(auxiliar,"a","xxxxxxxx")
¿Sucede algún caso especial con las tildes?
gracias
|
|
|
|
28/03/08, 12:11:23
|
#2 (permalink)
|
|
Moderador
Registrado: nov 2002
Ubicación: 34.517 S, 58.500 O
Mensajes: 11.961
|
Re: replace que no funciona :(
Cita:
¿Sucede algún caso especial con las tildes?
No, debería funcionar... salvo que lo que tengas como á no séa realmente á sino, por ejemplo, á
O tal vez... ¿que sea un problema de codificación?
__________________
···---···
|
|
|
|
28/03/08, 12:24:36
|
#3 (permalink)
|
Registrado: mar 2005
Mensajes: 209
|
Re: replace que no funciona :(
el texto está en una abse de datos y seguro que pone "á" qué tipo de problema por codificación te refieres?
|
|
|
|
28/03/08, 21:38:31
|
#4 (permalink)
|
Registrado: mar 2008
Ubicación: En mi casa
Mensajes: 180
|
Re: replace que no funciona :(
Al Zuwaga tiene razón... prueba utilizar el Nombre HTML en vez de el caracter en si:
Lo que no estoy seguro es si va entre comillas o no... prueba tu mismo:
Código:
auxiliar=replace(auxiliar,"á","a")
auxiliar=replace(auxiliar,"Á","A")
Código:
auxiliar=replace(auxiliar,á,"a")
auxiliar=replace(auxiliar,Á,"A")
Aca te dejo una pagina donde salen todos los caracteres con su "Nombre en HTML" que es el que debes usar.
http://ascii.cl/es/codigos-html.htm
En esa pagina tambien estan los codigos ASCCI por si alguna vez los necesitas 
|
|
|
|
28/03/08, 21:53:07
|
#5 (permalink)
|
Registrado: mar 2008
Ubicación: En mi casa
Mensajes: 180
|
Re: replace que no funciona :(
Aunque son un monton de caracteres especiales...
Quizas te convenga hacer un bucle, algo asi:
Código:
'Guardas todos los caracteres especiales en un array:
ArrayCaracteresEspeciales = Array1 = Split ("Áá,ETC SEPARADO POR COMAS", ",", -1, 1)
'Guardas los caracteres con el que quieras que se reemplace. Ojo que tienen que tener el mismo orden! Si hay algun caracter que no tiene reemplazo pon ,, (dos comas seguidas) para eliminar el caracter especial.
ArrayCaracteresReemplazo = Array1 = Split ("A,a,ETC SEPARADO POR COMAS", ",", -1, 1)
'Al hacer el split no estoy seguro si tienes que utilizar vbTextCompare (el ultimo 1) o vbBinaryCompare (reemplazar el ultimo 1 por un 0)
'Hacer el bucle que te saca los caracteres que cargaste en el array:
For i = 0 to uBound(ArrayCaracteresEspeciales )
auxiliar=replace(auxiliar,ArrayCaracteresEspeciales(i), ArrayCaracteresReemplazo(i))
Next
Quizas haya algo mas simple o me este equivocando... que me corrijan si es asi 
|
|
|
|
29/03/08, 04:37:47
|
#6 (permalink)
|
Registrado: mar 2005
Mensajes: 209
|
Re: replace que no funciona :(
me ignora por completo
Código:
auxiliar=replace(auxiliar,"á","bbbbbbbbbbb;")
auxiliar=replace(auxiliar,"Á","Á")
auxiliar=replace(auxiliar,"á","a")
no hacen nada estas líneas  
uso esto:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
|
|
|
|
30/03/08, 06:05:02
|
#7 (permalink)
|
Registrado: mar 2008
Ubicación: En mi casa
Mensajes: 180
|
Re: replace que no funciona :(
Aca te dejo el codigo probado y andando.
Código:
<%
auxiliar = "Ajá, mi papá se subio al camión. AÁ EÉ IÍ OÓ UÚ aá eé ií oó uú ®® ññ"
Response.Write(auxiliar)
Response.Write("<br />") 'Salto de linea
'Guardas todos los caracteres especiales en un array:
ArrayCaracteresEspeciales = Split ("á,é,í,ó,ú,Á,É,Í,Ó,Ú,®,ñ", ",", -1, 1)
'Guardas los caracteres con el que quieras que se reemplace. Ojo que tienen que tener el mismo orden! Se corresponden. Si hay algun caracter que no sabes por cual reemplazarlo simplemente lo "eliminas" dejando el espacio vario entre las comas
ArrayCaracteresReemplazo = Split ("a,e,i,o,u,A,E,I,O,U,,n", ",", -1, 1)
For i = 0 to uBound(ArrayCaracteresEspeciales )
auxiliar=replace(auxiliar,ArrayCaracteresEspeciales(i), ArrayCaracteresReemplazo(i),1,-1,1)
Next
Response.Write(auxiliar)
%>
Por cierto, yo uso <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> y me tira esto:
Ajá, mi papá se subio al camión. AÁ EÉ IÍ OÓ UÚ aá eé ií oó uú ®® ññ
Aja, mi papa se subio al camion. Aa Ee Ii Oo Uu aa ee ii oo uu nn
Pero si uso <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> me tira esto:
Ajá, mi papá se subio al camión. AÁ EÉ IÍ OÓ UÚ aá eé ií oó uú ®® ññ
Aja, mi papa se subio al camion. AA EE II OO UU aa ee ii oo uu nn
Queda a tu criterio.
|
|
|
|
30/03/08, 07:00:12
|
#8 (permalink)
|
Registrado: mar 2008
Ubicación: En mi casa
Mensajes: 180
|
Re: replace que no funciona :(
Estaba leyendo la Biblioteca de Clases,Funciones y Sub-rutinas aca en el foro, y encontre esta funcion, y me acorde de ti.
Código:
Function SinAcentos(str)
Dim intI, strCar, Dev
Dev = ""
For intI = 1 To Len(str)
strCar = Mid(str, intI, 1)
Select Case strCar
Case "à": Dev = Dev & "a"
Case "á": Dev = Dev & "a"
Case "è": Dev = Dev & "e"
Case "é": Dev = Dev & "e"
Case "í": Dev = Dev & "i"
Case "ò": Dev = Dev & "o"
Case "ó": Dev = Dev & "o"
Case "ú": Dev = Dev & "a"
Case Else: Dev = Dev & strCar
End Select
Next
SinAcentos = Dev
End Function
Y se llamaria de esta forma:
Código:
auxiliar = "Ajá, mi papá se subio al camión. AÁ EÉ IÍ OÓ UÚ aá eé ií oó uú ®® ññ"
auxiliar = SinAcentos(auxiliar)
Cualquiera sirve... te toca elegir! 
|
|
|
|
| Herramientas |
Buscar en Tema |
|
|
|
| Desplegado |
Califica este Tema |
Mode Lineal
|
|
Reglas del foro
|
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes
Código [IMG] está activado
Código HTML está desactivado
|
|
|
Todas las horas son GMT -6. La hora es 14:34:50.
|