type
TLsLand = (GER,USA,GBT);
function IndexOfArrayItem(TheArray :
Array of String ;Item :
String ):Integer;
overload;
function IndexOfArrayItem(TheArray :
Array of Byte ;Item : Byte ):Integer;
overload;
function IndexOfArrayItem(TheArray :
Array of Integer ;Item : Integer ):Integer;
overload;
function IndexOfArrayItem(TheArray :
Array of Char ;Item : Char ):Integer;
overload;
function IndexOfArrayItem(TheArray :
Array of Currency;Item : Currency):Integer;
overload;
function IndexOfArrayItem(TheArray :
Array of Double ;Item : Double ):Integer;
overload;
function IndexOfArrayItem(TheArray :
Array of Boolean ;Item : Boolean ):Integer;
overload;
function ShortMonStrToInt(Month :
String; Land : TLsLand):Integer;
function LongMonStrToInt(Month :
String; Land : TLsLand):Integer;
implementation
function IndexOfArrayItem(TheArray :
Array of String;Item :
String):Integer;
begin
Result := High(TheArray);
while (Result >= 0)
and (TheArray[Result] <> Item)
do Dec(Result);
end;
// usw. usf. für alle überladenen Versionen bis:
function IndexOfArrayItem(TheArray :
Array of Boolean;Item : Boolean):Integer;
begin
Result := High(TheArray);
while (Result >= 0)
and (TheArray[Result] <> Item)
do Dec(Result);
end;
function ShortMonStrToInt(Month :
String; Land : TLsLand):Integer;
const
EngArray :
Array[0..11]
of String
= ('
JAN','
FEB','
MAR','
APR','
MAY','
JUN','
JUL','
AUG','
SEP','
OCT','
NOV','
DEC');
GerArray1 :
Array[0..11]
of String
= ('
JAN','
FEB','
MRZ','
APR','
MAI','
JUN','
JUL','
AUG','
SEP','
OKT','
NOV','
DEZ');
GerArray2 :
Array[0..11]
of String
= ('
JAN','
FEB','
MÄR','
APR','
MAI','
JUN','
JUL','
AUG','
SEP','
OKT','
NOV','
DEZ');
begin
case Land
of
USA,GBT : Result := IndexOfArrayItem(EngArray,AnsiUpperCase(Month));
GER :
begin
Result := IndexOfArrayItem(GerArray1,AnsiUpperCase(Month));
if Result < 0
then Result := IndexOfArrayItem(GerArray2,AnsiUpperCase(Month));
end;
else raise Exception.Create('
Nichtdefiniertes Land übergeben!');
end;
if Result >= 0
then inc(Result);
// damit man auf die Monatszahl kommt, muß um 1 erhöht werden.
end;
function LongMonStrToInt(Month :
String; Land : TLsLand):Integer;
begin
Result := ShortMonStrToInt(copy(Month,1,3), Land);
end;