Das Problem ist CompareMem auf einen shortstring.
Beim Zuweisen eines shortstrings wird nicht der "Rest" geleert.
Beispiel:
Delphi-Quellcode:
var
s: string[16];
i: Integer;
begin
s := 'XXX 14806001';
s := 'XXX 148060';
for i := 1 to 16 do
Write(s[i]);
end.