I need to return min and max values of two Integers in many situations in my Pascal Script. But every time I need to create a TStringList
, add my two or more Integers to it and convert it to an Array Of String
and then get its min and max values using two of my functions called ArrayOfStringMax
and ArrayOfStringMin.
I like to have two functions like Min
and Max
to make this easier like unit Math
in Delphi.
For example,
Log(IntToStr(Min(1000, 26)));
Output should be 26
.
Log(IntToStr(Max(45, 1989)));
Output should be 1989.
Currently I only need Min
and Max
for Integer
Type. If a function can be made to return minimum and maximum values even of Single
, Double
, Extended
, Int64
types, it will be a very useful function.
UPDATE
procedure StringListToArrayOfString(StringList: TStringList; var ArrayOfString: Array Of String);
var
X: Integer;
begin
SetLength( ArrayOfString, StringList.Count);
for X := 0 to (StringList.Count - 1) do ArrayOfString[X] := StringList.Strings[X];
end;
function ArrayOfStringMax(ArrayOfString: Array of String): String;
var
X, M: Integer;
begin
M := StrToInt(ArrayOfString[Low(ArrayOfString)]);
for X := 1 to High(ArrayOfString) do
if StrToInt(ArrayOfString[X]) > M then M := StrToInt(ArrayOfString[X]);
Result := IntToStr(M);
end;
function ArrayOfStringMin(ArrayOfString: Array of String): String;
var
X, M: Integer;
begin
M := StrToInt(ArrayOfString[Low(ArrayOfString)]);
for X := 1 to High(ArrayOfString) do
if StrToInt(ArrayOfString[X]) < M then M := StrToInt(ArrayOfString[X]);
Result := IntToStr(M);
end;
Those are the three functions I currently using in the Script.
Thanks in advance.
ArrayOfStringMax
, yet you are not able to implement a simpleMax
. – Martin PrikrylArrayOfStringMax
, what is a way more complex to implement thanMax
. So I wonder, how can you have a problem implementing theMax
. – Martin PrikrylArrayOfStringMax
using aHigh and Low
method. – Blueeyes789ArrayOfStringMax
is either completely wrong or terribly inefficient. – Martin Prikryl