Ver Mensaje Individual
  #3  
Antiguo 26-07-2007
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Reputación: 22
b3nshi Va por buen camino
Hola... muchas gracias por tu respuesta... pero parece q por ahi no viene la mano... asi q lo q hice fue empezar a probar por porciones el codigo para ver a donde estaba el error... y resulta q aparece aqui:

Código Delphi [-]
{aib1 es un archivo binario, info es un registro, 
Tam es una variable q almacena "filesize(aib1)"
arreglo_valor es un arreglo q almacena la informacion del archivo (solo el valor, ya q el registro tiene otros datos)}
 
{Tamaño del arreglo}
Setlength(arreglo_valor,tam - 1);

{Ahora cargo el arreglo y voy almacenando el valor maximmo}
seek (aib1,tam);
for i:= 0 to tam - 1 do  begin
  seek(aib1, tam - 1);
  read(aib1,info);
  if valormax < strtofloat(info.valor) then
   valormax := strtofloat(info.valor);//Actualizo el valor maximo
  arreglo_valor[i]:= strtofloat(info.valor);
 end;

y bueno lo q hice fue cambiar por estas lineas de codigo y ya no me causa el error:

Código Delphi [-]
 
{Tamaño del arreglo}
Setlength(arreglo_valor,tam); //<--Primer cambio,e l tamaño, ya no es tam -1

{Ahora cargo el arreglo y voy almacenando el valor maximmo}
seek (aib1,tam);
pos := filepos(aib1); //Declaro esta variable q va guardando la posicion del archivo
for i:= 0 to tam - 1 do  begin
  seek(aib1, pos - 1);
  read(aib1,info);
  if valormax < strtofloat(info.valor) then
  valormax := strtofloat(info.valor);//Actualizo el valor maximo
  arreglo_valor[i]:= strtofloat(info.valor);
  pos := filepos(aib1);
 end;

Y ahora como dije ya no causa el error... pero no entiendo porq... será porq el tamaño del arreglo q estaba definiendo es menor q el tamaño q realmente necesitaba?

No se... la verdad ni idea... si alguien encuentra el motivo del error y su solucion voy a estar muy agradecido...

{Saludos}
Responder Con Cita