Die Funktion ist ineffizient, da sie heimlich dauernd Strings alloziiert.
Delphi-Quellcode:
function GetTranslation(AName: PChar): PChar; stdcall;
var
I: Integer;
begin
Result := nil;
// erst mal nil und Leerstring aussortieren
if (AName <> nil) and (AName[0] <> #0) then
// Low und High benutzen
for I := Low(Language) to High(Language) do
// den PChar Vergleicher benutzen
if StrComp(Language[I].Name, AName) = 0 then
begin
Result := Language[I].Translation;
// immer den schwaechsten Abbruch waehlen
Break;
end;
end;
Die obige Version kommt ohne temporaere Strings aus.