내가이 문제가, 예를 들어이 코드를 보면 :델파이 XE2와 숯불/바이트 유형
SRC는 문자열 타입이며 iindex는 정수 타입과 출력으로 내가 뭔가를 같이 가지고해야src := '';
for iindex := 0 to 255 do
begin
src := src + char(byte(iindex));
writeln (iindex:5, byte(src[iindex]):5);
end;
:
iIndex byte(src[iIndex])
0 0
1 1
2 2
3 3
..................
254 254
255 255
그래서 델파이 xe까지 모든 버전의 델피에서도 마찬가지였습니다. 내가 물어 문자열의 다른 유형을 사용할 필요가 이제
iIndex byte(src[iIndex])
0 0
1 0
2 1
3 2
..................
254 253
255 254
: 이제 델파이 XE2로, 나는이 출력이? 물론 바이트 (src [succ (iindex)])에 바이트 (src [iindex]) 업데이트하지만 그것을 해결하기위한 해결 방법을 찾았지만 iIndex = 255 일 때, 나는 예외 (src [256])를 가지고있다. 따라서 단어를 바꿔야합니다. 물론, 나는 이것이 최상의 해결책이라고 생각하지 않습니다. 그래서 더 좋은 해결책이 있는지 물어볼 것입니다. 대단히 감사합니다.
src는 어떻게 선언됩니까? 어쨌든, 반드시 'byte (...)'대신에 'ord (src [iIndex])'를 써야할까요? –
src는 다음과 같이 선언됩니다. var src : string; 내가 바이트의 자리에서 ord를 사용하는 경우, awfull 결과, 나는 0, 255, 1, 등 0과 1, 2 인덱스 : 0, 1, 2 존중합니다. –
@david : ord (src [iIndex])를 사용합니다. iIndex = 0 인 경우 0입니다. iIndex = 255의 경우 255 iIndex 2에 0; 등등 .. iIndex = 255 내가 253. awfull :(몇 가지 아이디어? –