From e7a55631dfa3e4011e420dbd22891d4adf98aa7d Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Wed, 18 Jun 2008 22:30:08 +0200 Subject: Handle multiple file extensions Resolves #1120769 --- UCoreUtils.pas | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'UCoreUtils.pas') diff --git a/UCoreUtils.pas b/UCoreUtils.pas index 93bbff0..8fa6fef 100644 --- a/UCoreUtils.pas +++ b/UCoreUtils.pas @@ -60,6 +60,8 @@ function FormatSize(Value: Int64; Base: integer; OverrideSizeFormat: integer = - function FormatDate(Value: time_t; const FormatTime, FormatDate: boolean; OverrideTimeFormat: integer = -1; OverrideDateFormat: integer = -1; OverrideDateTimeFormat: integer = -1; OverrideCustomDateFormat: string = ''; OverrideCustomTimeFormat: string = ''): string; function StripDate(Value: time_t): time_t; +function IncludeLeadingDot(s: string): string; + function AttrToStr(const Mode: Cardinal; IncludeFileType: boolean = True): string; function AttrToOctal(const Mode: Cardinal): integer; function OctalToAttr(Octal: Cardinal): Cardinal; @@ -83,6 +85,9 @@ function ReplaceStr(const S, Srch, Replace: string): string; function NumCountChars(const Char: char; const S: string): integer; procedure ParseString(const Str, Separator: string; var SubStrings: TOpenStringArray); +function MakeString(const Separator: string; var SubStrings: TOpenStringArray): string; +procedure CopyArray(var src: TOpenStringArray; var dst: TOpenStringArray); +procedure DeleteFromArray(Index: integer; var SubStrings: TOpenStringArray); function ProcessPattern(Engine: TPanelEngine; Pattern, APath, FileName: string; const Directory: boolean): string; @@ -420,6 +425,14 @@ begin end; end; +(********************************************************************************************************************************) +function IncludeLeadingDot(s: string): string; +begin + s := Trim(s); + if s[1] <> '.' then Result := '.' + s + else Result := s; +end; + (********************************************************************************************************************************) function GetHomePath: string; begin @@ -962,6 +975,35 @@ begin end; end; +function MakeString(const Separator: string; var SubStrings: TOpenStringArray): string; +var i: integer; +begin + Result := ''; + if Length(SubStrings) > 0 then begin + for i := 0 to Length(SubStrings) - 2 do + Result := Result + SubStrings[i] + Separator; + Result := Result + SubStrings[Length(SubStrings) - 1]; + end; +end; + +procedure CopyArray(var src: TOpenStringArray; var dst: TOpenStringArray); +var i: integer; +begin + SetLength(dst, Length(src)); + for i := 0 to Length(src) - 1 do dst[i] := src[i]; +end; + +procedure DeleteFromArray(Index: integer; var SubStrings: TOpenStringArray); +var i: integer; +begin + if Length(SubStrings) > 0 then begin + if Index < Length(SubStrings) - 1 then + for i := Index to Length(SubStrings) - 2 do + SubStrings[i] := SubStrings[i + 1]; + SetLength(SubStrings, Length(SubStrings) - 1); + end; +end; + (********************************************************************************************************************************) function GetStrSize(s: string): Int64; var i: integer; -- cgit v1.2.3