string[12]
ist intern so aufgebaut:
Delphi-Quellcode:
array[0..12] of AnsiChar;
// bzw.
record
Length: Byte{AnsiChar};
array[1..12] of AnsiChar;
end;
Und jetzt überleg mal, was da mit dem Langenbyte bei dir passiert.
Und dazu kommt eventuell noch, daß deine Strings auch noch im Speicher ausgerichtet sein könnten (z.B. erst an der nächsten Integer-Grenze beginnen)