Los Foros de ASPTutor.com
Home | Perfil | Registrarse | Temas Activos | Miembros | Buscar | FAQ
Usuario:
Password:
 Todos los Foros
 ASP
 Replace y comillas dobles
 Foro Bloqueado  Tema Bloqueado


Autor Temas
caiman
Starting Member

España
23 Posts
Mensajes - 02 Oct 2002 :  11:14:55  Ver Perfil  Enviar Email
Tengo un texto con comillas dobles y quiero hacer un replace de esas comillas dobles a simples, el problema es que la funcion replace exige que el texto vaya entre comillas dobles y al encontrarse con la comilla doble del texto interpreta que ahí se acaba la cadena.
¿Cómo puedo evitar esto?

dos
Moderator

España
1575 Posts
Posted - 02 Oct 2002 :  11:46:57  Ver perfil  Enviar e-mail
prueba con esto:

texto = replace(texto, """, "'")

Al loro, que lo primero son 3 comillas dobles juntas y lo otro es una comilla simple entre dos comillas dobles.

No lo probe asi que no estoy seguro si esta bien o no, pero por ahi andan los tiros.

Saludos.

Para cuando los foros de tecnologias .NET y XML????Inicio Pagina

caiman
Starting Member

España
23 Posts
Posted - 02 Oct 2002 :  11:50:18  Ver perfil  Enviar e-mail
El problema de eso es que si escribo por ejemplo
texto=Oder"tt'ó
datos=Replace(texto,""","'")
response.write(datos)
me sale el mensaje:
Error de compilación de Microsoft VBScript error '800a0409'

Constante de cadena sin terminar

/pruebas/AcentoNetscape.asp, line 27

texto=Oder"tt'ó
---------------^

¿Cómo puedo evitar eso?

Inicio Pagina

ermana
Junior Member


263 Posts
Posted - 02 Oct 2002 :  11:56:08  Ver perfil  Enviar e-mail
Las comillas simples y dobles tienen un char en concreto.
Yo, para cambiarlas por simples uso:
y=Replace(x, Chr(39), Chr(34))
Y funciona de coña!
Saludos,
Enrique

Inicio Pagina

caiman
Starting Member

España
23 Posts
Posted - 02 Oct 2002 :  12:02:58  Ver perfil  Enviar e-mail
Os agradezco vuestra ayudo pero soy algo nuevo en esto y si alguien fuese tan amabla de montarmelo sobre el ejemplo que he puesto le estaria infinitamente agradecido

Inicio Pagina

ermana
Junior Member


263 Posts
Posted - 02 Oct 2002 :  13:41:13  Ver perfil  Enviar e-mail
Joder tio, más que nuevo, eres un vago de tomo y lomo ;-)
Veamos :
En primer lugar no se queja del Replace, se queja de la igualdad = Te faltan las comillas!!! :
texto="Oder" & Chr(39) & "tt'ó"
datos=Replace(texto, Chr(39), Chr(34))
response.write(datos)

Saludos,
Enrique

Inicio Pagina

dos
Moderator

España
1575 Posts
Posted - 02 Oct 2002 :  14:51:17  Ver perfil  Enviar e-mail
si recojes el dato de un formulario yo lo haria de esta forma

variable = Replace(Request.Form("dato"), Chr(39), Chr(34)).

PD: y no seas tan vago, que si no piensas como poder poner eso poco futuro tienes en esto la verdad (sobre todo como veas los ejemplos de uso de algunas páginas de microsoft :P)


Saludos.

Para cuando los foros de tecnologias .NET y XML????Inicio Pagina

lemosa
Starting Member

Uruguay
21 Posts
Posted - 05 Oct 2002 :  18:49:11  Ver perfil  Enviar e-mail
Estimados: Este es mi primer mensaje y como no podía ser de otra manera es para solicitar ayuda:
Mi problema es que estoy recibiendo un campo de formulario un texto que incluye comillas dobles, este valor de texto quiero compararlo con otro que tengo en la BD, vía la sentecia SELECT pero el problema es que no he encontrado la manera de arreglar el problema que me signfica tener las comillas dobles, pero basta de palabras aquí va el código:

swhere = swhere & "Iteat1val =" & "'" &Request.Form("at1")&"'"

swhere lo utilizo luego para crear la clausula WHERE del SELECT.

en request.form("at1") esto recibiendo:

1" 81-761 blk

He utilizado la sugerencia de "dos" pero no ha funcionado.

Ojala puedan ayudarme, me tiene muy caliente este tema.

Muchas Gracias desde Uruguay
Alejandro
Inicio Pagina

ermana
Junior Member


263 Posts
Posted - 05 Oct 2002 :  20:14:47  Ver perfil  Enviar e-mail
Como dije en "problema con las comillas" de Perejilo del 4/Oct (justo un poquito más abajo).
He leído por ahí que cambiando una comilla simple por dos comillas simples, funciona ¿¿??. No he tenido tiempo de problarlo, y tampoco sé si es lo mismo con comillas dobles.
Lo pruebas tú y nos dices que tal?.
Para hacerlo la sentencia es muy sencilla :

y=Replace(x, "'", "''")
o lo que sería lo mismo
y=Replace(x, Chr(34), Chr(34)&Chr(34))

Saludos,
Enrique

P.D.
Esta pregunta no es de ASP.
Lea detenidamente las instrucciones.
Y en caso de duda consulte con su moderador.

Inicio Pagina

lemosa
Starting Member

Uruguay
21 Posts
Posted - 05 Oct 2002 :  20:55:35  Ver perfil  Enviar e-mail
ermana:

En primer lugar gracias por contestar, en segundo lugar ya he probado todo lo que figura en el mensaje, todas las formas de replace pero no hay caso, no funciona.
A estas altura creo que no hay solución para el problema:

Agrego algo mas, si hago un response.write(request.form("at1")) muestra por pantalla solo el 1, se trunca en las comillas dobles.

Por último: Si esto no es una pregunta de ASP ¿QUE ES? ¿Que instrucciones hay que leer?
¿O es otra de tus ácidas bromas? (He estado leyendo alguno de tus otros mensajes)

Vayan mis saludos.

Muchas Gracias desde Uruguay
Alejandro
Inicio Pagina

ermana
Junior Member


263 Posts
Posted - 06 Oct 2002 :  00:49:52  Ver perfil  Enviar e-mail
Además de humor, tengo grandes dotes de adivinación. Las he necesitado para descifrar tu pregunta.

Vamos por partes, presento dos páginas :

Página: ejemplo3.asp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Problemas con las comillas</title>
</head>
<body>

<form method="POST" action="ejemplo3b.asp">
<input type="text" name="T1" size="20">
<input type="submit" value="Enviar" name="B1">
<input type="reset" value="Restablecer" name="B2"></p>
</form>
</body>
</html>

Página: ejemplo3b.asp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Problemas con las comillas</title>
</head>
<body>

<%
x=Request.Form("T1")
y=Replace(x, "'", "''")
Response.Write y
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "mibase_mdb"
query="SELECT * FROM mitabla"
query=query & " WHERE ((CAMPO1)='" & y & "')"
Set RS=Conn.Execute(query)
If Err.Number<>0 or RS.EOF Then
Response.Write "no"
Else
Response.Write "si"
End If
RS.Close

%>
</body>
</html>

En primer lugar:
En el campo de texto puedes introducir tanto 1” 81-761 blk como 1' 81-761 blk, el Response.Write no falla nunca.
Conclusión : Lo que dices en tu mensaje (“Agrego algo mas, si hago un response.write(request.form("at1")) muestra por pantalla solo el 1, se trunca en las comillas dobles”) no se ajusta a lo que ocurre realmente.

En segundo lugar:
En el campo de texto puedes introducir tanto 1” 81-761 blk como 1' 81-761 blk, el
SELECT no falla nunca. Para que funcione con la comilla simple ha sido necesario añadir el Replace, lo que leí era cierto.
Conclusión: Lo que dices en tu mensaje (“ya he probado todo lo que figura en el mensaje, todas las formas de replace pero no hay caso, no funciona”) deja serias dudas sobre tus métodos de prueba.

Para corroborar lo anterior sálvate las paginas TAL CUAL y pruébalas.

En tercer lugar:
Una consulta sobre una frase SELECT debería ir a ADO, o no?. Pero en caso de duda ...

Y por último:
Sí. Se trata de mi habitual humor ácido. Celebro que te guste.

Saludos,
Enrique


Inicio Pagina

caiman
Starting Member

España
23 Posts
Posted - 07 Oct 2002 :  12:05:00  Ver perfil  Enviar e-mail
Ciertamente es fácil dedicarse a hablar de que alguien es flojo si saber el problema, lo cierto es que se mezcla el javascript con la doble comilla, pero ya lo he resuelto con ayuda del javascript.Vuestra solución tampoco funciona
Os recomiendo que la proxima vez que os dediqueis al humor ácido lo hagais con razón.
De todas formas gracias por vuestra ayuda

Inicio Pagina

Parsons
Moderator

España
1247 Posts
Posted - 07 Oct 2002 :  13:10:19  Ver perfil  Enviar e-mail  Visit Parsons's Homepage
Una puntualización.

Al igual que en Visual Basic, el pintar unas comillas dentro de un "string" lleva una forma exclusiva.

Por ejemplo, si quieres pintar lo siguiente:

- Hola, un "saludo"

Deberás usar lo siguiente:

Response.write "Hola, un " & """" & "saludo" & """"

Es decir, usar conjuntos de 4 comillas para que VBScript reconozca una como string. con lo que, para sustituir el caracter (") por el caracter (') con replace, deberás usar lo siguiente:

variable=Replace(texto,"""","'")

Inicio Pagina

malorena
Starting Member

Argentina
7 Posts
Posted - 30 Mar 2006 :  21:29:49  Ver perfil  Enviar e-mail  Enviar malorena un Mensaje Yahoo!e
La solución de Enrique anda POSTA!!!

LoreInicio Pagina

   
 Foro Bloqueado  Tema Bloqueado
Ir a:
Los Foros de ASPTutor.com Los Foros de ASPTutor.com
Ir al principio de la Página

 Imprimir Tema
 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar