Код:
var
...
b: AnsiString;
...
А так же PAnsiChar, AnsiChar и т.д вместо аналогичных.
Ибо в Д2010 по умолчанию юникод, то-бишь двухбайтовый WideString, от него и "лишний" символ.
З.Ы. SizeOf(Char) - улыбнуло, символ сколько байт занимает? Правильно, 1. Лишнее вычесление.