1. Computing

Formatting a File Size in Bytes for Display

Convert Bytes to String using Delphi


When working with files from Delphi you might want to display the size of a file to the user in a Explorer-like format where the file size is not displayed in bytes - but the display depends on the size of the actual file.

To most users "45678123 b" is confusing - where "43.56 MB" is much more user friendly.

Format Byte Size to String

A custom Delphi function, FormatByteSize, converts a byte value into a string that represents the number expressed as a size value in bytes, kilobytes, megabytes, or gigabytes, depending on the size.
 //Format file byte size
 function FormatByteSize(const bytes: Longint): string;
   B = 1; //byte
   KB = 1024 * B; //kilobyte
   MB = 1024 * KB; //megabyte
   GB = 1024 * MB; //gigabyte
   if bytes > GB then
     result := FormatFloat('#.## GB', bytes / GB)
     if bytes > MB then
       result := FormatFloat('#.## MB', bytes / MB)
       if bytes > KB then
         result := FormatFloat('#.## KB', bytes / KB)
         result := FormatFloat('#.## bytes', bytes) ;

Delphi tips navigator:
» Create a Custom Message Dialog with Standard Windows Icons using Delphi
« Controlling the Number of a Delphi application Instances on a Terminal Server

©2014 About.com. All rights reserved.