IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Taille réelle d'un fichier


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 654
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 654
    Par défaut Taille réelle d'un fichier
    Bonjour à toutes et à tous,

    Voila, j'ai une fonction qui permet en principe de connaître la taille d'un fichier.

    Mais cette taille ne semble pas être correcte à la valeur contenue dans le hint lorsque le curseur est posé sur ce fichier.

    La taille de mon fichier affiche 5,72M et 5861Ko

    Le résultat avec la fonction affiche 6001637 octets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function TailleFichier(fichier: string): longint;
    var SearchRec:TSearchRec;
        Resultat:integer;
    begin
      Result:=0;
      Resultat:=FindFirst(fichier, FaAnyFile, SearchRec);
      if Resultat=0 then Result:=SearchRec.Size;
      FindClose(SearchRec);
    end;
    Utilisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    procedure TFTaille.BTestClick(Sender: TObject);
    begin
      if Op1.Execute then
      begin
        showmessage('Taille du fichier '+Op1.FileName +': '+IntToSt(TailleFichier(Op1.FileName)));
      end;
    end;
    Si quelqu'un a mieux, cela m'intéresse.

    Merci d'avance,

    @+,

    Cincap

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 64
    Par défaut
    Bonjour

    je dirai que la taille est bonne

    6001637 octets / 1024 nous donne 5860,97 donc si tu arrondit 5861 Ko et si tu redivise par 1024 ca nous donne 5,72 Mo.

    Cordialement
    Sébastien

  3. #3
    Membre chevronné

    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Par défaut
    C'est correct.

    L'affichage est en Ko = 1024 octets et en Mo = 1024 * 1024 octets.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 654
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 654
    Par défaut Correct !
    Y a t'il moyen alors avec cette fonction de calculer et d'afficher directement le résultat en Mo.

    Merci d'avance,

    @+,

    Cincap

  5. #5
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Est-ce que cette Q/R de la FAQ répond à ta question ?

    @+ Claudius

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Salut,

    Ou bien ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     function fGoMoKo(const mem : DWord) : string; // pour afficher une taille en DWord via la string-Result au format raccourci
      var      e : byte; s : string; r : Extended;
      begin    e:=0; r:=mem;
               if r>=0 then
               begin while r>1024 do begin r:=r/1024; inc(e); end;
                     case e of
                        0 : s:='Oct';
                        1 : s:='Ko';
                        2 : s:='Mo';
                        3 : s:='Go';
                        4 : s:='To';
                     end;
                     fGoMoKo:=FormatFloat('#.###',r)+' '+s;
               end;
      end; // fGoMoKo
    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  7. #7
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 124
    Par défaut
    Avec un DWord, on atteind jamais le To ! et GetFileSize j'ai les Int64 via des LargeInt (Double DWord)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Taille réelle espace utilisée fichier de donnée
    Par zut94 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/12/2008, 00h02
  2. Réponses: 9
    Dernier message: 26/08/2006, 20h35
  3. Lecture de la taille réelle du fichier .mdf
    Par carjo dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 13/01/2006, 20h42
  4. [VB.Net] Taille réelle d'un composant avec Scroll
    Par maitrebn dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/01/2006, 14h36
  5. [debutant] Dessiner en taille réelle
    Par -=Spoon=- dans le forum OpenGL
    Réponses: 1
    Dernier message: 29/01/2005, 05h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo