Answer:
type
TSex = (sxMale,sxFemale);
TEnumLang = (elGeneric,elEnglish,elAfrikaans);
const
BoolText : array [elGeneric..elAfrikaans,false..true] of string =
(('FALSE','TRUE'),
('NO','YES'),
('NEE','JA')
);
SexText : array [elGeneric..elAfrikaans,sxMale..sxFemale] of string =
(('M','F'),
('MALE','FEMALE'),
('MANLIK','VROULIK')
);
MaxLang = elAfrikaans; // Set to last enum if modified above
function BoolToStr(BoolVal : boolean; Language : TEnumLang) : string;
begin
Result := BoolText[Language,Boolval];
end;
function StrToBool(BoolStr : string) : boolean;
var BStr : string;
i : TEnumLang;
ii,
Retvar : boolean;
begin
Retvar := false;
BStr := UpperCase(BoolStr);
for i := elGeneric to MaxLang do begin
for ii := false to true do begin
if Uppercase(BoolText[i,ii]) = BStr then begin
Retvar := ii;
break;
end;
end;
end;
Result := Retvar;
end;
function SexToStr(Sex : TSex; Language : TEnumLang) : string;
begin
Result := SexText[Language,Sex];
end;
function StrToSex(SexStr : string) : TSex;
var SStr : string;
i : TEnumLang;
ii,
Retvar : TSex;
begin
Retvar := sxMale;
SStr := UpperCase(SexStr);
for i := elGeneric to MaxLang do begin
for ii := sxMale to sxFemale do begin
if Uppercase(SexText[i,ii]) = SStr then begin
Retvar := ii;
break;
end;
end;
end;
Result := Retvar;
end;
|