Browse Source

New unit Quick.Format

Unknown 7 years ago
parent
commit
746c3ec5ac
2 changed files with 74 additions and 3 deletions
  1. 3 3
      Quick.Commons.pas
  2. 71 0
      Quick.Format.pas

+ 3 - 3
Quick.Commons.pas

@@ -7,7 +7,7 @@
   Author      : Kike Pérez
   Author      : Kike Pérez
   Version     : 1.2
   Version     : 1.2
   Created     : 14/07/2017
   Created     : 14/07/2017
-  Modified    : 22/01/2018
+  Modified    : 14/03/2018
 
 
   This file is part of QuickLib: https://github.com/exilon/QuickLib
   This file is part of QuickLib: https://github.com/exilon/QuickLib
 
 
@@ -119,7 +119,7 @@ type
   //generates a random password with complexity options
   //generates a random password with complexity options
   function RandomPassword(const PasswordLength : Integer; Complexity : TPasswordComplexity = [pfIncludeNumbers,pfIncludeSigns]) : string;
   function RandomPassword(const PasswordLength : Integer; Complexity : TPasswordComplexity = [pfIncludeNumbers,pfIncludeSigns]) : string;
   //extracts file extension from a filename
   //extracts file extension from a filename
-  function ExtractFileNameWithoutExt(const FileName: String): String;
+  function ExtractFileNameWithoutExt(const FileName: string): string;
   //converts a Unix path to Windows path
   //converts a Unix path to Windows path
   function UnixToWindowsPath(const UnixPath: string): string;
   function UnixToWindowsPath(const UnixPath: string): string;
   //converts a Windows path to Unix path
   //converts a Windows path to Unix path
@@ -294,7 +294,7 @@ begin
   end;
   end;
 end;
 end;
 
 
-function ExtractFileNameWithoutExt(const FileName: String): String;
+function ExtractFileNameWithoutExt(const FileName: string): string;
 begin
 begin
   Result := TPath.GetFileNameWithoutExtension(FileName);
   Result := TPath.GetFileNameWithoutExtension(FileName);
 end;
 end;

+ 71 - 0
Quick.Format.pas

@@ -0,0 +1,71 @@
+{ ***************************************************************************
+
+  Copyright (c) 2016-2018 Kike Pérez
+
+  Unit        : Quick.Format
+  Description : String Format functions
+  Author      : Kike Pérez
+  Version     : 1.2
+  Created     : 14/07/2017
+  Modified    : 14/03/2018
+
+  This file is part of QuickLib: https://github.com/exilon/QuickLib
+
+ ***************************************************************************
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+ *************************************************************************** }
+
+unit Quick.Format;
+
+interface
+
+uses
+  System.SysUtils,
+  Math;
+
+  //converts a number to thousand delimeter string
+  function NumberToStr(const Number : Int64) : string;
+  //convert bytes to KB, MB, TB...
+  function FormatBytes(const aBytes : Int64; Spaced : Boolean = False) : string;
+
+implementation
+
+
+function NumberToStr(const Number : Int64) : string;
+begin
+  try
+    Result := FormatFloat('0,',Number);
+  except
+    Result := '#Error';
+  end;
+end;
+
+function FormatBytes(const aBytes : Int64; Spaced : Boolean = False) : string;
+const
+  mesure : array [0..8] of string = ('Byte(s)', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
+var
+  i : Integer;
+  bfmt : string;
+begin
+  i := 0;
+  while aBytes > Power(1024, i + 1) do Inc(i);
+  if Spaced then bfmt := '%.2f %s'
+    else bfmt := '%.2f%s';
+  Result := Format(bfmt,[aBytes / IntPower(1024, i),mesure[i]]);
+end;
+
+
+
+end.