Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-09-2012
johan johan is offline
Miembro
 
Registrado: may 2006
Posts: 38
Poder: 0
johan Va por buen camino
Filesize ficheros grandes

Buenas a todos, me estoy encontrando que con Filesize en un fichero de mas de dos gb me devuelve un numero negativo... Alguien se ha encontrado con el mismo problema y lo ha podido solucionar.
Gracias.,
Responder Con Cita
  #2  
Antiguo 13-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola, recuerda poner los temas en los foros adecuados, este foro es el de "Delphi/web", cosa que no tiene nada que ver tu pregunta, lo paso a "Varios".

En relación a tu pregunta, deberías poner el código fuente, no somos adivinos para ver qué estás haciendo, aunque se intuye que estás usando una variable integer y por eso no puede representar números tan grandes, declárala del tipo int64
Responder Con Cita
  #3  
Antiguo 13-09-2012
johan johan is offline
Miembro
 
Registrado: may 2006
Posts: 38
Poder: 0
johan Va por buen camino
Gracias Casimiro. Es la función FileSize(z) que averigua el tamaño del fichero pero retorna Integer, por lo que estuve mirando.
Responder Con Cita
  #4  
Antiguo 13-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
A ver...

Código Delphi [-]
function FileSize(const FileName: string): Int64; 
var   sr: TSearchRec; 
begin   
  if FindFirst(FileName, faAnyFile, sr) = 0 then     
  try       
    Result := Int64(sr.FindData.nFileSizeHigh) shl Int64(32) + Int64(sr.FindData.nFileSizeLow);     
  finally       
    SysUtils.FindClose(sr);     
  end   
  else     
    Result := -1; 
end;
Responder Con Cita
  #5  
Antiguo 13-09-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Proba de este modo:
Código Delphi [-]
function FileLongSize(const FileName: string): Int64;
var
  FindData: TWin32FindData;
begin
  Windows.FindClose(FindFirstFile(PChar(FileName), FindData));
  Result := FindData.nFileSizeHigh shl 32 or FindData.nFileSizeLow;
end;

Saludos.

Edito: Disculpa, no había visto tu mensaje Casimiro , bueno otra opción...
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 13-09-2012 a las 01:14:33.
Responder Con Cita
  #6  
Antiguo 13-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por ecfisa Ver Mensaje
Edito: Disculpa, no había visto tu mensaje Casimiro , bueno otra opción...
Nada que disculpar, es "casi" lo mismo, por poco hacemos un "copia->pega" del mismo
Responder Con Cita
  #7  
Antiguo 13-09-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Nada que disculpar, es "casi" lo mismo, por poco hacemos un "copia->pega" del mismo
Es que no hay mucho mas para inventar...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 13-09-2012
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Otra forma (recordando este hilo: C++ Obterner tamaño fichero grande...)

Código Delphi [-]
function GetFileSizeEx(hFile: THandle; var Data: int64): boolean; stdcall; external 'Kernel32.dll' name 'GetFileSizeEx';

implementation
     
     
function _GetFileSize(hFile: THandle): int64;
begin
  if not GetFileSizeEx(hFile, Result) then Result:= 0;
end;


Saludos.
Responder Con Cita
  #9  
Antiguo 14-09-2012
johan johan is offline
Miembro
 
Registrado: may 2006
Posts: 38
Poder: 0
johan Va por buen camino
Perfecto gracias a todos !!!! asunto resuelto.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
filesize gusspagano Varios 5 19-04-2012 19:01:41
Se busca: biblioteca para números grandes (muy grandes) Lord Delfos Varios 7 06-02-2010 01:26:35
File of byte y filesize madmai Varios 1 11-07-2008 18:49:43
Procesando ficheros muy GRANDES nax C++ Builder 6 27-08-2005 02:39:44
Grandes frases de grandes personas Nuria Humor 7 18-04-2004 05:40:17


La franja horaria es GMT +2. Ahora son las 03:41:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi