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