Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/06/2003, 14:24
Avatar de Bravenap
Bravenap
 
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 5 meses
Puntos: 4
Bueno, estoy en ello, pero de momento te voy a ir dejando una introducción. Es muy probable que los ejemplos que te voy a poner no correspondan en absoluto con tu problema, pero así voy a ir dejando claro los pasos que doy y por qué.

Código:
<html>
<head>
<%
Dim ArrayTiempo,ArrayHora,ArrayMinuto,ArraySegundo,suma,Tiempo

dni = Request.Form("dni")

SET BASE = Server.CreateObject("ADODB.Connection")
BASE.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("./tiempos.mdb")
		
SQL = "SELECT * FROM Tiempos WHERE ID = '"& dni &"'"
SET RS = Server.CreateObject ("ADODB.RecordSet")
RS.Open SQL, BASE


IF NOT RS.EOF THEN
	RS.Movefirst
	DO UNTIL RS.EOF
	
	Tiempo=RS("Tiempos")

	ArrayTiempo = split(CDate(Tiempo),":")
	ArrayHora(RS("Posicion"))=ArrayTiempo(0)
	ArrayMinutos(RS("Posicion"))=ArrayTiempo(1)
	ArraySegundos(RS("Posicion"))=ArrayTiempo(2)

	RS.Movenext
	LOOP
END IF	

%>
</head>

<body>

</body>
</html>
Supongamos que quieres recoger los tiempos que ha hecho un usuario en un juego de carreras. Estos tiempos se han ido guardando en un base de datos (tiempos.mdb), en una tabla (Tiempos) que contiene 3 campos:

- "ID", donde se guarda la identificación del usuario que luego introducirá en un formulario para conocer sus tiempos.

- "Posicion", que guarda correlativamente el número de registros de ese usuario empezando por 0, que será lo que se use para ir definiendo las posiciones de la matriz de tiempos.

- "Tiempos", finalmente, los tiempos que ha hecho ese usuario en cada uno de los registros.

Pues bien, lo que hemos hecho es recoger del formulario previo, el identificador del usuario en la variable "dni" y tras crear la conexión a la base de datos buscamos los registros que coincidan con "dni" en el campo ID.

Mediante un bucle y puesto que los registros de tiempos están en la forma "HH:MM:SS" vamos guardando en tres matrices separadas las horas, los minutos y los segundos. Se ha utilizado el campo posición para ir numerando las posiciones de la matriz. Esto se podía haber ahorrado sumando 1 a una variable en cada vuelta del bucle, pero era por ahorrar código.

//a partir de aquí ya no está hecho pero no es muy difícil//

Pues bien, ahora lo que queda por hacer es símplemente sumar todos los elementos de cada matriz entre sí. No sé si con otro bucle o habrá una función específica que lo haga.

Una vez hecho esto, dividimos el resultado obtenido en la suma de la matriz de segundos entre 60 y el valor entero se lo añadimos al resultado de la suma de la matriz de minutos. Hacemos lo propio con el resultado que acabamos de obtener para sumárselo a las horas y ya tendríamos el total de los tiempos en tres variables:

TotalHoras:TotalMinutos:Totalsegundos

Bueno, después de todo este rollo que ni yo mismo me leería, decirte que todo esto no funciona.... ¡Qué no, que es broma!
En principio yo creo que se podría aproximar a esto, aunque seguro (y espero) que pronto aparezca algún monstruo de los que andan por aquí y lo resuleve todo en dos líneas.

Suerte.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!