Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   ASP Clásico (http://www.forosdelweb.com/f15/)
-   -   replace que no funciona :( (http://www.forosdelweb.com/f15/replace-que-no-funciona-570261/)

MandrakeXP 28/03/2008 11:41

replace que no funciona :(
 
hola, estoy intentando quitar las tildes y caracteres especiales en de un texto pero no me deja :neurotico:neurotico


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? :borracho:

gracias

AlZuwaga 28/03/2008 12:11

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?

MandrakeXP 28/03/2008 12:24

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?

i_e_s27 28/03/2008 21:38

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 :-)

i_e_s27 28/03/2008 21:53

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 :borracho:

MandrakeXP 29/03/2008 04:37

Re: replace que no funciona :(
 
me ignora por completo :neurotico

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"%>

i_e_s27 30/03/2008 06:05

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.

i_e_s27 30/03/2008 07:00

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! :-)


La zona horaria es GMT -6. Ahora son las 20:08.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.