Tema: promedio
Ver Mensaje Individual
  #2  
Antiguo 10-03-2009
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Pon un ejemplo de la línea, porque no entiendo bien cual es el formato de cada una.
Si por ejemplo fuera así:
Código:
01/01/2009,123.98
02/01/2009,21.32
...
puedes hacerlo de la siguiente manera:
- Lees todo dentro de un TStringList
(SList.LoadFromFile(archivo))
- Te metes dentro de un bucle leyendo cada linea
(for i := 0 to SList.Lines.Count -1)
- De cada línea lees las partes
(
fecha := StringToDateTime(copy(SList.Lines[i],1,10))
dato := StrToInt(copy(SList.Lines[i],12,10 {longitud del campo}))
)
- Con un if verificas si la fecha está dentro del rango a promediar
(if ((fecha>=DesdeFecha) and (fecha<=HastaFecha)) then)

Código Delphi [-]
SList := TStringList.Create;
try
   //Cargo el archivo
   SList.LoadFromFile(archivo);
   //Empiezo el bucle
   for i := 0 to SList.Lines.Count -1 do
   begin
      //Extraigo informacion
      fecha := StringToDateTime(copy(SList.Lines[i],1,10))
      dato := StrToInt(copy(SList.Lines[i],12,10 {longitud del campo}))
      //Verifico rango
      if ((fecha>=DesdeFecha) and (fecha<=HastaFecha)) then
      begin
         //Si está en el rango acumulo
         Inc(cantidad);
         Suma := Suma + Dato;
      end;
   end;
   //Finalmente calculo el promedio
   Promedio := Suma / cantidad;
finally
   SList.Free;
end;
Responder Con Cita