SetLength (동적배열)
Posted on 2008/07/01 22:59
Filed Under Delphi
## 시작 전 기본지식 ######################################################################
프로그램이 메모리에 올라와 있는 모습
메모리
------------------------------------------------------------------------------------------------
OS | 함수 | 리소스 | 외부변수 | 내부변수 | 힙
--------------- -------------------------------------------------------------------
코드부분 프 로 그 램
1. OS : 컴퓨터를 작동하기 위한 OS가 메모리의 첫 부분을 차지한다.
2. 함수: 델파이로 코등한 프로그램은 델파이가 정의한 함수를 여기에 보관한다.
3. 리소스: 프로그램을 가동하기 위한 아이콘 파일이나 폰트등을 보관한다.
4. 외부변수 : 프로그램이 가동과 동시에 생성되며 프로그램이 종료되기전까지 외부변수는 변하지 않느다.
5. 내부변수 : 프로그램의 각 기능(프로시저)의 작동과 동시에 존재한다. 외부변수와는 다르게 프로그램이 종료
되어도 메모리 내용이 삭제가 되지 않으므로 nil 또는 Finalize를 사용하여 메모리를 절약한다.
6. 힙 : 여유분으로 확보하고 있는 공간이다.
#####################################################################################
동적배열은 배열의 크기를 런타임시 변경할 수 있다.
ex.
----------------------------------------------------------------------------------
Var
be : Array of Integer;
begin
SetLength(be, 5); //이로 인해 be[0],be[1],be[2],be[3],be[4]의 5개의 변수가 생긴다.
.
.
.
be := nil; //또는 Finalize(be);
end
----------------------------------------------------------------------------------
* SetLength 는 1번부터 시작하지 않고 0번 부터 시작한다.
--관련예제--
에디트에 이름을 넣어서 저장시킨 후 보기를 클릭하면 저장된 내용들이 이름기준 오른차순으로 정렬
############################################################################
var
Form1: TForm1;
implementation
{$R *.DFM}
Var
n : Integer;
be : Array of String;
procedure TForm1.Button1Click(Sender: TObject);
begin
n := n + 1;
SetLength(be, n); // be를 n만큼 동적으로 메모리를 확장한다.
be[n-1] := Edit1.text;
Edit1.SetFocus;
Edit1.Text := '';
end;
procedure TForm1.Button2Click(Sender: TObject);
Var
i,j : Integer;
st, temp : String;
begin
for i := 0 to High(be)-1 do //오름차순 정렬의 공식
for j:=i+1 to High(be) do *
if be[i] > be[i + 1] then *
begin *
temp := be[i]; *
be[i] := be[j]; *
be[j] := temp; *
end; *
for i := 0 to High(be) do
st := st + be[i] + #10;
ShowMessage(st);
end;
end.
############################################################################
Project1.exe이름순으로 정렬하기
'Delphi' 카테고리의 다른 글
| [델파이]StringGrid의 셀에 색칠하기 예제 (0) | 2008/07/09 |
|---|---|
| [델파이]Edit에 수치값만 입력 가능하게(소수, 음수입력 가능) 자리수 제한 (0) | 2008/07/09 |
| [델파이] TIdFTP로 FTP 클라이언트 만들기 (0) | 2008/07/09 |
| 델파이에서 Format 사용례 (0) | 2008/07/09 |
| 레코드 (0) | 2008/07/03 |
| SetLength (동적배열) (2) | 2008/07/01 |


댓글을 달아 주세요
기호 2009/12/22 12:55 댓글주소 수정/삭제 댓글쓰기
이것이 뭐시냐..ㅡ,.ㅡ;;;ㅋ
백수님 시절때 잠깐 공부하던 델파이 수업자료?
지금보니 허접하기 그지 없긴한데....ㅡ,.ㅡ