PDA

Ver la Versión Completa : Tamaño maximo de ficheros tipo file of


JF Sebastian
05-02-2007, 11:09:19
Sabeis si en win32 existen limitaciones de tamaño de archivo segun la siguiente estructura:

type
TReg = array [0 .. 1024] of double;
TFich = file of TReg;

A la hora de crear el fichero no hay problemas, he conseguido crear archivos de mas de 4Gb pero a la hora de leer con la funcion seek esta me genera un error (131) que dice que no se pueden buscar posiciones negativas. Es como si a partir de mas de 2Gb del archivo se generase ese error.
Con ficheros de menos de 2Gb no hay problema.

seoane
05-02-2007, 11:31:55
La limitación la impone la propia función seek, ya que utiliza como parámetro un integer, y el numero mas grande positivo que puede expresarse con un integer es 2^31 (2 Gb). Si necesitas hacer saltos mayores vas a tener que replantear tu código y usar funciones como Fileseek o directamente la API SetFilePointer.

JF Sebastian
05-02-2007, 13:11:49
y un TFileStream? Se puede utilizar sin problemas??

seoane
05-02-2007, 13:27:06
Pues parece que el método Seek de un TFileStream utiliza un int64:

function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64;

Así que en principio, se pueden realizar saltos de hasta 2^63.