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

split en asp

Estas en el tema de split en asp en el foro de ASP Clásico en Foros del Web. saludos.- alguna funcion como split en ASP que me ayude atrabajar con numeros en lugar de cadenas?? tendran algunos ejemplos? gracias...
  #1 (permalink)  
Antiguo 31/03/2004, 09:11
 
Fecha de Ingreso: marzo-2004
Mensajes: 30
Antigüedad: 20 años, 2 meses
Puntos: 0
split en asp

saludos.-

alguna funcion como split en ASP que me ayude atrabajar con numeros en lugar de cadenas??

tendran algunos ejemplos? gracias

Última edición por kevinal; 31/03/2004 a las 09:21
  #2 (permalink)  
Antiguo 31/03/2004, 10:18
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Fijate el siguiente esjemplo.



<%
cadena = "1,2,3"
cadena = split(cadena, ",")

for i = 0 to ubound(cadena)
suma = suma + cint(cadena(i))
concatenacion = concatenacion + cadena(i)
next

response.write "La suma es: " & suma
response.write "<br>"
response.write "La concatenación es: " & concatenacion
%>


Si lo convertís a número (cint()) lo va a sumar, sinó lo va a concatenar.



También, sin usar cint(), se logra lo mismo. El resultado va a depender de cómo VBScript asuma el tipo de datos. Si lo metés entre comillas lo tomará como string y si no, como numérico y lo sumará:


<%
variable = 0
otra_var = "0"

cadena = "1,2,3"
cadena = split(cadena, ",")

for i = 0 to ubound(cadena)
variable = variable + cadena(i)
otra_var = otra_var + cadena(i)
next

response.write "el resultado de la operación con 'variable' es: " & variable
response.write "<br>"
response.write "el resultado de la operación con 'otra_var' es: " & otra_var
%>


saludos
  #3 (permalink)  
Antiguo 31/03/2004, 15:56
 
Fecha de Ingreso: marzo-2004
Mensajes: 30
Antigüedad: 20 años, 2 meses
Puntos: 0
split en asp

Gracias, voy a chekar lo k me mandan .-

k tengan buen dia
  #4 (permalink)  
Antiguo 31/03/2004, 17:54
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 22 años, 2 meses
Puntos: 0
Aprovecho este mensaje para hacer otra pregunta sobre split.

Tengo varios registros y cada registro tiene una cadena, entoces yo lo que quiero es cortar todas las cadenas por un determinado caracter pj: el ; y almacenar todas las cadenas que obtengo en una variable.

Podriais Orientarme un poco con algun codigo de ejemplo o algo parecido. Gracias
  #5 (permalink)  
Antiguo 31/03/2004, 21:36
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Más o menos así:


cadena = ""
While Not rs.EOF
cadena = cadena & rs("campo") & ";"
rs.MoveNext
Wend

Al final del ciclo, tendrás una cadena con todo lo que te haya arrojado tu rs, separada por ";", si necesitas después procesarlo, pues entonces si, puedes crear un arreglo, pero se me hace como que harías un paso de más, ya que podrías almacenar el contenido de ese campo en un arreglo dinámico desde el mismo while...

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 01/04/2004, 02:24
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 22 años, 2 meses
Puntos: 0
Me temo que esta solucion no me vale pues asi no sabria el registro del cual procede cada cadena. y necesito saberlo. Pues cada cadena es un nombre de una imagen, y en un registro puede haber varias imagenes. E implementado como un visor de imagenes de cada registro, poongo el codigo aqui:

<%tipo=request.querystring("tipo")
dir="../public/"+tipo+"/"
Set con = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
con.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/mdb-database/propiedad.mdb"))

'Ejecuta un sentencia SQL de consulta
sql = "SELECT * FROM "+tipo+""
Set result = con.Execute(sql)
'Recorre todas las filas del resultado
Do While Not result.EOF
ruta=result("ruta")
if ruta<>"" then
e=e+1

arreglo=split(ruta,";")
if e=1 then
response.write "<table cellpadding='2' border=0 cellspacing='2' class='general'><tr>"
end if
if a=3 then
response.write "</tr><tr>"
a=0
end if

response.write "<td valign='top' align='center'><table style='border: 1 solid #000000' class='general'><tr><td bgcolor=#003399 colspan=2><font class='property'>• "&result.fields("propiedad")&"</font></td></tr><tr><td>"%><a onClick="afoto('<%=dir&arreglo(0)%>','Model <%=result.fields("propiedad")%>');return false" style='cursor:hand'><%response.write "<img src='"&dir&arreglo(0)&"' name='imag2' width='140'></a></td></tr>"

%>
<script>

i=0
dir2="<%=dir&arreglo(0)%>"

function pasaimagen<%=e%>(a){
i=i+1
if (i==a+1){i=0;}
if (i==-1) {i=a;}
<% for j=lbound(arreglo) to ubound(arreglo)-1 %>
if (i==<%=j%>) {
imag2.src="<%=dir&arreglo(j)%>"
dir2="<%=dir&arreglo(j)%>"
n=i+1
}
<%next%>
}
</script>
<%
if ubound(arreglo)>1 then
%>
<table>
<tr>
<td align="center" >
<p align="center" class="f">
<a href="javascript:pasaimagen<%=e%>(<%=ubound(arregl o)-1%>);" class="f">&lt;&lt;&lt;
Previous</a>&nbsp;&nbsp; <a href="javascript:pasaimagen<%=e%>(<%=ubound(arregl o)-1%>);" class="f">Next
&gt;&gt;&gt;</a>
<%
end if
else
response.write "<CENTER><BR>FOTO <BR>NO<BR> DISPONIBLE<CENTER>"
end if%>
</td>
</tr>
</table>

<%
a=a+1
result.MoveNext
Loop
'Libera memoria
result.Close
Set result = Nothing
con.Close
Set con = Nothing



El problema esta en que en cada registro existen tres imagenes, y yo solamente puedo ver la primera de cada registro, no me funcionan las opciones para pasar a la siguiente imagen.

Espero me haya explicado

Última edición por jpalbox; 09/04/2004 a las 06:19
  #7 (permalink)  
Antiguo 01/04/2004, 16:42
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 22 años, 2 meses
Puntos: 0
Nadie tiene una idea de como solucionar esto?

  #8 (permalink)  
Antiguo 01/04/2004, 16:52
 
Fecha de Ingreso: marzo-2002
Ubicación: Quito
Mensajes: 99
Antigüedad: 22 años, 3 meses
Puntos: 0
Deberías intentar directamente contra la base de datos, haciendo un Store procedure que manipule todas las cadenas en un cursor que recorrerá todos los registros.
__________________
Pablo Robayo

Última edición por pablorobayo; 01/04/2004 a las 16:55
  #9 (permalink)  
Antiguo 01/04/2004, 17:50
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 22 años, 2 meses
Puntos: 0
UPPFFFF Eso que es, la verdad es que tengo ideas justas de asp, si me pones un ej posiblemente que lo entienda mejor

Gracias
  #10 (permalink)  
Antiguo 09/04/2004, 06:09
 
Fecha de Ingreso: abril-2002
Mensajes: 432
Antigüedad: 22 años, 2 meses
Puntos: 0
ahi va la solucion

<script language="javascript">

var ventana
var cont=0
var titulopordefecto = " -----" //texto por defecto a mostrar en la barra de título en caso de omitir el argumento titulo
var redir="'contact.asp'"

function afoto(cual,titulo)
{
if(cont==1){ventana.close();ventana=null}
if(titulo==null){titulo=titulopordefecto}
ventana=window.open('','ventana','resizable=yes,sc rollbars=no,width=10,height=10')
ventana.document.write('<html><head><link href="../estiloss.css" rel="stylesheet"><title>' + titulo + '</title>')
ventana.document.write('</head><body style="overflow:hidden" marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" scroll="no" onUnload="opener.cont=0" bgcolor="#3366FF" text="#FFFFFF"><center class="b"> <a href="javascript:window.print()" class="b">Print photo</a> | <a href="javascript:window.close();window.opener.loca tion.replace('+ redir +');" class="b" style="cursor:hand">Contact us</a> | <a href="javascript:window.close()" class="b">Close window</a><br><br><center><img src="' + cual + '" onLoad="opener.redimensionar(this.width, this.height)">')
ventana.document.close()
cont++
}
function redimensionar(ancho,alto)
{
ventana.resizeTo(ancho+12,alto+60)
ventana.moveTo((screen.width-ancho)/2,(screen.height-alto*1,5)/2)
//centra la ventana. Eliminar si no se quiere centrar el popup
}
</script>
</head>
<%tipo=request.querystring("tipo")
dir="../public/"+tipo+"/"
'Abre la conexion con la base de datos a traves de una conexion ODBC
Set con = Server.CreateObject("ADODB.Connection")
'Como vamos a utilizar la variable rs del tipo recordset para recorrer los registros con EOF
Set rs = Server.CreateObject("ADODB.Recordset")
con.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/mdb-database/propiedad.mdb"))

'Ejecuta un sentencia SQL de consulta
sql = "SELECT * FROM "+tipo+""
rs.Open sql, con,3

'Recorre todas las filas del resultado

Dim arreglo(99,99)

Do While Not rs.EOF
ruta=rs("ruta")
if ruta<>"" then
ele=split(ruta,";")
totalele=ubound(ele)
for ea=0 to totalele
arreglo(e,ea)=ele(ea)
next

if e=0 then
response.write "<table cellpadding='2' border=0 cellspacing='2' class='general'><tr>"
end if
if a=3 then
response.write "</tr><tr>"
a=0
end if

response.write "<td valign='top' align='center'><table style='border: 1 solid #000000' class='general'><tr><td bgcolor=#003399 colspan=2><font class='property'>• "&rs.fields("propiedad")&"</font></td></tr><tr><td>"%><a onClick="afoto(dir2<%=e%>,'<%=rs.fields("propiedad ")%>');return false" style='cursor:hand'><%response.write "<img src='"&dir&arreglo(e,0)&"' name='imag"&e&"2' width='140'></a></td></tr>"

%>
<script>

i<%=e%>=0
dir2<%=e%>="<%=dir&arreglo(e,0)%>"

function pasaimagen<%=e%>(a,b){
i<%=e%>=i<%=e%>+b
if (i<%=e%>==a+1){i<%=e%>=0;}
if (i<%=e%>==-1) {i<%=e%>=a;}
<% for j=lbound(ele) to ubound(ele)-1 %>
if (i<%=e%>==<%=j%>) {
imag<%=e%>2.src="<%=dir&arreglo(e,j)%>"
dir2<%=e%>="<%=dir&arreglo(e,j)%>"
n<%=e%>=i<%=e%>+1
}
<%next%>
}
</script>
<%
if ubound(ele)>1 then
%>
</a>
<table>
<tr>
<td align="center" >
<p align="center" class="f">
<a href="javascript:pasaimagen<%=e%>(<%=ubound(ele)-1%>,-1);" class="f">
<img border="0" src="../images/previous.gif" align="absmiddle"> Previous</a>&nbsp;&nbsp;
<a href="javascript:pasaimagen<%=e%>(<%=ubound(ele)-1%>,1);" class="f">Next
<img border="0" src="../images/next.gif" align="absmiddle"></a> <%
end if
else

if e=0 then
response.write "<table cellpadding='2' border=0 cellspacing='2' class='general'><tr>"
end if
if a=3 then
response.write "</tr><tr>"
a=0
end if

response.write "<td valign='top' align='center'><table style='border: 1 solid #000000' class='general'><tr><td bgcolor=#003399 colspan=2><font class='property'>• "&rs.fields("propiedad")&"</font></td></tr><tr><td class='f' width='140'><center><BR>PHOTO<BR>NO<BR>AVAILABLE<B R><BR></CENTER></td></tr>"

end if%>
</td>
</tr>
</table>

<%
a=a+1
e=e+1
Set ele = Nothing
rs.MoveNext
Loop
'Libera memoria
rs.Close
Set rs = Nothing
con.Close
Set con = Nothing

Última edición por jpalbox; 27/04/2004 a las 04:14
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 00:57.