From 38fcab7e5a4cd6ab92382755ffbda3a2311b82a0 Mon Sep 17 00:00:00 2001 From: Pavel Dubrovsky Date: Tue, 11 Sep 2018 11:24:09 +0300 Subject: [PATCH] TrimEx function --- MRC_Helper.pas | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/MRC_Helper.pas b/MRC_Helper.pas index 09363845..1b15b692 100644 --- a/MRC_Helper.pas +++ b/MRC_Helper.pas @@ -79,6 +79,7 @@ function RetryAttemptsToString(Attempt: integer): WideString; procedure ProcessMessages; function IncludeSlash(const Str: WideString): WideString; function NormalizeSlashes(const Str: WideString): WideString; +function TrimEx(const Str: WideString; TrimChar: WideChar): WideString; function FormatSize(size: Int64; SizeType: integer = TYPE_AUTO): WideString; //Форматируем размер в удобочитаемый вид //Procedure FileLog(S: WideString); @@ -682,6 +683,19 @@ function NormalizeSlashes(const Str: WideString): WideString; Result := StringReplace(Str, '\', '/', [rfReplaceAll]); end; +function TrimEx(const Str: WideString; TrimChar: WideChar): WideString; +var + S, E: integer; +begin + S := 1; + while (S <= Length(Str)) and (Str[S] = TrimChar) do + Inc(S); + E := Length(Str); + while (E >= 1) and (Str[E] = TrimChar) do + Dec(E); + SetString(Result, PChar(@Str[S]), E - S + 1); +end; + function FormatSize(size: Int64; SizeType: integer = TYPE_AUTO): WideString; //Форматируем размер в удобочитаемый вид const postfixes: array [0 .. 6] of string = ('b', 'kb', 'Mb', 'Gb', 'Tb', 'Pb', 'Eb');