GetFileSize ne fournit aucun moyen pour transformer un fichier en une chaîne descriptive, cet algorithme n'
fonction de GetAFileSize(SizeInBytes: Integer): String
const
& nbsp & nbsp Preffixes: array[0..3] of String = //Commune de la taille de fichier preffixes
& nbsp & nbsp & nbsp (' Octets', 'KO', 'MO', 'GO') //Changer si vous voulez quelque chose qui convient à
& nbsp & nbsp FormatSpecifier: array[Boolean] of String =
& nbsp & nbsp & nbsp ('%s', '%.2n') //la façon dont nous le format de la chaîne
var
& nbsp & nbsp i: entier //compteur
& nbsp & nbsp TmpSize: Réel //Une variable temporaire
begin
& nbsp & nbsp i := -1 //Éviter le compilateur se plaignent
& nbsp & nbsp tmpSize := SizeInBytes //Éviter le compilateur se plaignent
& nbsp & nbsp while (i <= 3) do //boucle Principale, il est fait alors que j' < Élevé(Preffixes) mais depuis
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp // un fichier rarement passer un GO jusqu'à 3
& nbsp & nbsp commencer
& ! & ! & ! & nbsp TmpSize := TmpSize / 1024 //1 MO = 1024 KO, 1 KO = 1024 Octets 1 Octet = 8 Bits, 1 bit = rien
& ! & ! & ! & nbsp inc( i ) //incrémentation du compteur et sélectionnez preffix chaîne
& ! & ! & ! & nbsp si Trunc( TmpSize )= 0 alors //on atteint un nombre maximum de divisions, donc
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp TmpSize := TmpSize * 1024 //Tmpsize a été divisé 1 heure de plus que nécessaire
& ! & ! & ! & ! & ! & nbsp Pause //Sortie de la boucle
& ! & ! & ! & nbsp fin
& nbsp & nbsp fin
& nbsp & nbsp //mise en forme Réelle de routine
& nbsp & nbsp Résultat := Format(FormatSpecifier[((Frac(TmpSize)*10) >1)], [TmpSize]) Preffixes[i]
fin
Notes d'intérêt:
& nbsp & nbsp * Ces algorithme s'appuie sur delphi format natif de la fonction, qui sorte des limites qu'il
& nbsp & nbsp * Il isnot partie de l'api de windows, vous avez qu'à copier et coller chaque fois que vous l'utiliser
& nbsp & nbsp * a la différence de windows api, il a arrondi correct et peut être étendu
L'obtention d'un fichier
L'obtention d'un fichier : Plusieurs milliers de conseils pour vous faciliter la vie.
GetFileSize ne fournit aucun moyen pour transformer un fichier en une chaîne descriptive, cet algorithme n'
fonction de GetAFileSize(SizeInBytes: Integer): String
const
& nbsp & nbsp Preffixes: array[0..3] of String = //Commune de la taille de fichier preffixes
& nbsp & nbsp & nbsp (' Octets', 'KO', 'MO', 'GO') //Changer si vous voulez quelque chose qui convient a
& nbsp & nbsp FormatSpecifier: array[Boolean] of String =
& nbsp & nbsp & nbsp ('%s', '%.2n') //la façon dont nous le format de la chaîne
var
& nbsp & nbsp i: entier //compteur
& nbsp & nbsp TmpSize: Reel //Une variable temporaire
begin
& nbsp & nbsp i := -1 //Eviter le compilateur se plaignent
& nbsp & nbsp tmpSize := SizeInBytes //Eviter le compilateur se plaignent
& nbsp & nbsp while (i <= 3) do //boucle Principale, il est fait alors que j' < Eleve(Preffixes) mais depuis
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp // un fichier rarement passer un GO jusqu'a 3
& nbsp & nbsp commencer
& ! & ! & ! & nbsp TmpSize := TmpSize / 1024 //1 MO = 1024 KO, 1 KO = 1024 Octets 1 Octet = 8 Bits, 1 bit = rien
& ! & ! & ! & nbsp inc( i ) //incrementation du compteur et selectionnez preffix chaîne
& ! & ! & ! & nbsp si Trunc( TmpSize )= 0 alors //on atteint un nombre maximum de divisions, donc
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp TmpSize := TmpSize * 1024 //Tmpsize a ete divise 1 heure de plus que necessaire
& ! & ! & ! & ! & ! & nbsp Pause //Sortie de la boucle
& ! & ! & ! & nbsp fin
& nbsp & nbsp fin
& nbsp & nbsp //mise en forme Reelle de routine
& nbsp & nbsp Resultat := Format(FormatSpecifier[((Frac(TmpSize)*10) >1)], [TmpSize]) Preffixes[i]
fin
Notes d'interet:
& nbsp & nbsp * Ces algorithme s'appuie sur delphi format natif de la fonction, qui sorte des limites qu'il
& nbsp & nbsp * Il isnot partie de l'api de windows, vous avez qu'a copier et coller chaque fois que vous l'utiliser
& nbsp & nbsp * a la difference de windows api, il a arrondi correct et peut etre etendu