Der alte Off-By-One Fehler - der Index muss bis Pred(Length(Ar)) laufen. Aber warum verwendest du nicht einfach einen Assoziativspeicher:
Delphi-Quellcode:
var
Map: TStringList;
NewId, OldId: String;
begin
Map := TStringList.Create;
NewId := 'A1';
OldId := '1A';
Map.Values[NewID] := OldID;
end;
marabu