Pascal/Turbo Pascal - Tamaño de archivo de solo lectura!

 
Vista:

Tamaño de archivo de solo lectura!

Publicado por Daniel Lamarca (1 intervención) el 05/08/2003 16:14:47
Estoy trabajando con Turbo Pascal y deseo obtener el tamaño de un archivo de un CD-ROM mediante el comando filesize, al intentarlo se genera un error. Como puedo Hacerlo?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Tamaño de archivo de solo lectura!

Publicado por Diego Romero (786 intervenciones) el 05/08/2003 18:07:01
Ten cuidado con FileSize ya que este te devuelve la cantidad de registros que no necesariamente es el tamaño en Bytes del archivo. Sería bueno que indicaras el número de error que te está devolviendo.
Para saber el tamaño en Bytes de un archivo usando FileSize debes hacer algo como esto:
var
F: File of Byte;
Tam: LongInt;
begin
Assign(F,'Archivo.ext');
reset(F);
Tam:=FileSize(F);
Close(F);
end.
Sin embargo puedes obtener el tamaño reportado por DOS si usas los procedimientos FindFirst y FindNext. Lee la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tamaño de archivo de solo lectura!

Publicado por Daniel Lamarca (2 intervenciones) el 06/08/2003 13:58:24
El error que se genera es :' runtime error 005 at 0000:003D ' .(es solo al acceder a archivos de solo lectura. El codigo que me sugeriste que use tambien lo genera. Con respecto a los comandos Findfirst y Findnext: Como puedo utilizarlos para obtener el tamaño de un archivo?
Muchas Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tamaño de archivo de solo lectura!

Publicado por Diego Romero (786 intervenciones) el 06/08/2003 14:59:25
El error al que haces referencia es de "permiso denegado" y creo que sé por qué es. Cuando usas Reset el modo de apertura por omisión es de lectura/escritura, esto está determinado por una variable predefinida llamada FileMode, el valor por omisión es 2 (lectura/escritura) y de allí el error de permiso denegado, debes establecer el valor de la variable FileMode a 0 (cero) solo lectura, un valor 1 a FileMode significa solo escritura. Mi ejemplo corregido:
var
F: File of Byte;
Tam: LongInt;
begin
FileMode:=0;
Assign(F,'Archivo.ext');
reset(F);
Tam:=FileSize(F);
Close(F);
end.
Debes tener en cuenta además que la variable FileMode afecta a todas las operaciones sobre archivos a partir de su cambio de valor, por lo que si luego de hacer esto necesitas escribir algo en algún otro archivo tienes que regresar su valor a 2 antes de usar ese archivo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias

Publicado por Daniel Lamarca (2 intervenciones) el 06/08/2003 16:05:24
Diego te agradesco mucho tu colaboracion, tu consejo me sirvio mucho. No es fue la primera ni la ultima. Gracias.

Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar