1. 첫번째로 문자열의 크기를 임의적으로 설정하는 것입니다.
szStr := 'abc'; // 크기 3
ShowMessage( IntToStr( Length( szStr ) ) ); // 3을 표시
SetLength( szStr, 2002 ); // String형의 szStr 변수의 크기를 2002로 설정
// 참고로.. 이전의 크기보다 클경우 내용은 보존되고 작으면 나머지는 짤립니다.
ShowMessage( IntToStr( Length( szStr ) ) ); // 2002을 표시
2. 둘째로 동적 배열의 크기를 설정합니다. 설정된 메모리의 시작은
0번째부터 시작합니다.
var
ArrayInt : Array of Integer;
nIndex : Integer;
begin
SetLength( ArrayInt, 10 ); // 배열이 10개인 동적 메모리 할당
for nIndex := 0 to 9 do
ArrayInt[ nIndex ] := nIndex;
ArrayInt := nil; // 동적 메모리 해제
end;
도움말을 보면 procedure SetLength(var S; NewLength: Integer); 되어 있던데.. 그렇다면 변수 a는 string형의 'abc'란 글자가 들어있고 변수 b는 longint형의 2002 라면 setlength(a, b); 게 했을시에는 어떻게 되는건가요?
강형철
•
2002.05.03 22:41
SetLength 함수는 여러가지 기능이 있습니다.
1. 첫번째로 문자열의 크기를 임의적으로 설정하는 것입니...
1. 첫번째로 문자열의 크기를 임의적으로 설정하는 것입니다.
szStr := 'abc'; // 크기 3
ShowMessage( IntToStr( Length( szStr ) ) ); // 3을 표시
SetLength( szStr, 2002 ); // String형의 szStr 변수의 크기를 2002로 설정
// 참고로.. 이전의 크기보다 클경우 내용은 보존되고 작으면 나머지는 짤립니다.
ShowMessage( IntToStr( Length( szStr ) ) ); // 2002을 표시
2. 둘째로 동적 배열의 크기를 설정합니다. 설정된 메모리의 시작은
0번째부터 시작합니다.
var
ArrayInt : Array of Integer;
nIndex : Integer;
begin
SetLength( ArrayInt, 10 ); // 배열이 10개인 동적 메모리 할당
for nIndex := 0 to 9 do
ArrayInt[ nIndex ] := nIndex;
ArrayInt := nil; // 동적 메모리 해제
end;
그럼 이만... 도움이 되기를...