У меня эта проблема, посмотрите этот пример кода:
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]), который вызывает исключение и поэтому нужно менять байт в слово. Конечно, я не думаю, что это лучшее решение, поэтому я спрашиваю вас, есть ли лучшее решение для него. Большое спасибо.