Я переношу программное обеспечение с Delphi 5 на Delphi XE. Я уже исправил много различий и теперь могу скомпилировать свой код.
Проблема в том, что иногда (в некоторых местах кода) я получаю сообщение об ошибке "Ошибка проверки диапазона".
Например, в этом коде:
function CopyChar(Ori : string; var Des : Array of char) : Boolean;
var Msg : string;
Counter : integer;
SizeDes : integer;
begin
SizeDes:= SizeOf(Des);
for Counter:= 1 to SizeDes do begin
Des[Counter-1]:= ' ';
end;
Ori:= Trim(Ori);
Msg:= '';
SizeDes:= Min(Length(Ori),SizeDes);
for Counter:= 1 to SizeDes do begin
Des[Counter-1]:= char(Ori[Counter]);
end;
CopyChar:= True;
end;
Я получаю ошибку во время выполнения при прохождении строки Des[Counter-1] := ' '; Ошибка возникает не при первом прохождении цикла, а через много раз.
Я пытался отключить Rance Checking ($R), но это не решает мою проблему. Я также пытался изменить тип «Счетчик» на Cardinal и LongWord, но безуспешно.
Буду рад любой полезной идее!
Спасибо.