Delphi XE2 и тип Char / Byte

У меня эта проблема, посмотрите этот пример кода:

src := '';
for iindex := 0 to 255 do
  begin
    src := src + char(byte(iindex));
    writeln (iindex:5, byte(src[iindex]):5);
  end;

где src - это строковый тип, а iindex - это целочисленный тип, и в качестве вывода я должен иметь что-то вроде:

iIndex   byte(src[iIndex])
 0         0
 1         1
 2         2
 3         3
 ..................
 254       254
 255       255   

и так было и во всех последних версиях delphi до delphi xe; Теперь с delphi xe2 у меня есть такой вывод:

iIndex   byte(src[iIndex])
 0         0
 1         0
 2         1
 3         2
 ..................
 254       253
 255       254   

Теперь я спрашиваю, нужно ли использовать другой тип строки? Я, конечно, нашел обходной путь для решения этой проблемы, обновив байт (src [iindex]) до байта (src [succ (iindex)]), но поэтому, когда iIndex = 255, у меня есть байт (src [256]), который вызывает исключение и поэтому нужно менять байт в слово. Конечно, я не думаю, что это лучшее решение, поэтому я спрашиваю вас, есть ли лучшее решение для него. Большое спасибо.

0
задан Marcello Impastato 20 September 2011 в 09:45
поделиться