Foros del Web » Programando para Internet » ASP Clásico »

Declarar Else -> "No hacer nada"

Estas en el tema de Declarar Else -> "No hacer nada" en el foro de ASP Clásico en Foros del Web. Una pregunta bien tonta. Tengo una condicional dentro de un While y quiero que el While haga una cosa (en mi caso enviar correos a ...
  #1 (permalink)  
Antiguo 27/03/2009, 08:25
 
Fecha de Ingreso: septiembre-2007
Mensajes: 99
Antigüedad: 17 años, 7 meses
Puntos: 0
Declarar Else -> "No hacer nada"

Una pregunta bien tonta. Tengo una condicional dentro de un While y quiero que el While haga una cosa (en mi caso enviar correos a una lista) en una condición y ninguna en el resto de casos. Estoy usando para engañarlo un response.write, de este modo:

Código:
Do While Not rs.EOF
destino=rs("correo")
if destino<>(variable declarada) then

<enviamos correo>

else 
response.write("ok")
end if
rs.MoveNext
Loop
Funciona no bien, sino perfecto, pero me parece que debe haber un modo más elegante y oficial de engañar al else.
¿Quizás debería usar un Select Case, del estilo:

Do While Not rs.EOF
Select Case destino
Case destino<>(variable declarada):
<enviamos el correo>
rs.MoveNext
Loop

¿Puede ser o es una burrez más?


Gracias de antemano.
  #2 (permalink)  
Antiguo 27/03/2009, 09:26
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Respuesta: Declarar Else -> "No hacer nada"

Do While Not rs.EOF
destino=rs("correo")
if destino<>(variable declarada) then

<enviamos correo>

end if
rs.MoveNext
Loop
  #3 (permalink)  
Antiguo 27/03/2009, 15:36
 
Fecha de Ingreso: septiembre-2007
Mensajes: 99
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Declarar Else -> "No hacer nada"

Bueno...Me tocó a mí hoy ser el gilipollas del foro.
Yo juraría que por supuesto quitar el else fue lo primero que probé, pero quizás me coincidió con algún otro fallo en el envío cdosys y supuse que había sido eso lo que andaba mal, por tener una comparativa negativa que siempre me ha resultado pésimo en los IF.
Gracias Muzz por echar un cable incluso a los más tontos.

No conforme aún, voy a intentar hacer aún más el ridículo:
Estuve tratando de (antes de resolver con el IF) enviar los correos con la inclusión en el .TO del cdosys de un array bien formateado. Para ello empecé usando getarrow(rs), aplicado a un SELECT de sólo el campo "correos" y luego pude sacar los valores a través de un FOR EACH, pero no logré encontrar el modo de colocarlos en una string con la ";" separándolos, tal y como pide el cdosys para enviar en estilo CC.
Por curiosidad, ¿cómo se haría esto? ¿Cómo se le dice al FOR EACH que saque todos los valores en la forma var=correo1;correo2;....;correoN?
  #4 (permalink)  
Antiguo 27/03/2009, 15:52
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Respuesta: Declarar Else -> "No hacer nada"

Lo que logro entender de tu último comentario es que tenés un array formado así:
MiArray = array("correo1,correo2,....,correoN")

y lo querés dejar como:
var=correo1;correo2;....;correoN

Entonces podrías hacer un join:
MiArray = array("correo1,correo2,....,correoN")
var= join(MiArray, ";")
__________________
...___...
  #5 (permalink)  
Antiguo 27/03/2009, 18:29
 
Fecha de Ingreso: septiembre-2007
Mensajes: 99
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Declarar Else -> "No hacer nada"

¿vos decís que con GetRows(rs) obtengo ya directamente un array unidimensional y no una matriz, aunque sea de un sólo campo? Yo tenía entendido que GetRows es siempre multidimensional (mejor dicho, matricial), y que para convertir sus datos en una string había que irlos sacando con un FOR.
Yo llegué a escribir esto, por probar:
Cita:
arraycorreo=getrows(rs)
For I=0 to Ubound (arraycorreo,1)
response.write(arraycorreo(I,0)&";")
next
Pero como ni siquiera era un response.write lo que quería (y pocas veces se me ocurre otra cosa) lo abandoné ahí.
  #6 (permalink)  
Antiguo 28/03/2009, 23:57
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 2 meses
Puntos: 88
Respuesta: Declarar Else -> "No hacer nada"

el mejor ejemplo de Getrows

te servira igual??
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #7 (permalink)  
Antiguo 01/04/2009, 06:35
 
Fecha de Ingreso: septiembre-2007
Mensajes: 99
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Declarar Else -> "No hacer nada"

Cita:
Iniciado por Shiryu_Libra Ver Mensaje
el mejor ejemplo de Getrows

te servira igual??
Perdona Shiryu, no he vuelto a entrar en el foro hasta hoy, he estado terminado de renovar la web. Gracias por el aporte.
Esa es precisamente una de mis páginas de referencia. El problema es que ahí queda claro como usar el getrows(), y hasta ahí yo llego, pero donde me atasco es en cómo recoger los datos, ya que yo no quiero escribir una tabla ni escribir nada sino obtener una variable que sea un array unidimensional separado por ";".

De todos modos el envío de correos a través del While está funcionando tan redondo que no merece la pena calentarnos más la cabeza con esto, de momento.
  #8 (permalink)  
Antiguo 01/04/2009, 07:32
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Respuesta: Declarar Else -> "No hacer nada"

Hola

Este no es un arreglo tal y como lo quieres, pero espero que te sirva

Código asp:
Ver original
  1. valores = rs.getrows()
  2.  
  3. dim arr()
  4. for i = 0 to UBound(valores)
  5. arr(i) = valores(i)
  6. next

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #9 (permalink)  
Antiguo 01/04/2009, 08:02
 
Fecha de Ingreso: septiembre-2007
Mensajes: 99
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Declarar Else -> "No hacer nada"

Pues sí, esa va a ser exactamente la manera, Adler, de solventar este tema.
Algo así entonces:
Cita:
arraycorreo=getrows(rs)
dim arr()
For I=0 to Ubound (arraycorreo,1)
arr(I)=(arraycorreo(I,0)&";")
next
No creo que se me hubiera ocurrido nunca algo tan elegante, consecuente y simple. "Si quieres obtener como variable un array, declara un array como variable".
No tengo tiempo ahora de ponerme a enviar correos para probar la fórmula, pero tiene toda la pinta de que esto es lo que debe ser.
Muchas gracias


EDITO:
Bueno, con una corrección:
Cita:
arraycorreo=getrows(rs)
dim arr()
For I=0 to Ubound (arraycorreo,2)
arr(I)=(arraycorreo(0,I)&";")
next

Última edición por vega22; 01/04/2009 a las 08:27
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:10.