본문 바로가기

프로그램 개발/델파이

델파이(delphy) system unit - B함수

728x90
반응형
------------------------------------------------
BlockRead system Unit

문법 : procedure BlockRead(var f:File; var Buf; Count:Word
[;var Result: Word]);

파일로부터 한 개 또는 다수 개의 레코드를 Buf 메모리 영역
으로 읽어들인다. F는 언타입드 파일 변수이며 Buf는 어떤 형
의 변수든지 상관없다. 읽혀지는 레코드의 개수는 Count인수
로 설정하며 실제로 읽혀진 레코드 수는 Result 인수로 리턴
된다. 파일로부터 읽혀진 레코드는 Buf 변수가 차지하고 있
는 메모리의 시작 위치에 기록된다. 리턴값인 Result가 Count
인수와 같은 값을 가지면 요구한 레코드가 전부 읽혀진 것이
며 Result가 Count보다 더 작은 값을 가지면 파일을 읽는 중에
EOF를 만난 것이다.

------------------------------------------------
BlockWrite system Unit

문법 : procedure BlockWrite(var f:File; var Buf; Count:Word
[;var Result: Word]);

파일로 한 개 또는 다수 개의 레코드를 출력한다. F는 언타입
드 파일 변수이며 Buf는 어떤 형의 변수든지 상관없다. 파일
로 출력되는 레코드의 개수는 Count 인수로 설정하며 실제로
출력된 레코드 수는 Result 인수로 리턴된다. 파일로 출력되
는 레코드는 Buf 변수가 차지하고 있는 메모리의 시작 위치
에 있어야 한다. 리턴값인 Reulst가 Count 인수와 같은 값을 가
지면 요구한 레코드가 이상없이 출력된 것이며 Result가
Count보다 더 작은 값을 가지면 디스크의 용량이 부족하여
레코드를 모두 출력하지 못한 것이다.

------------------------------------------------
Bounds Classes Unit

문법 : function Bounds(ALeft, ATop, AWidth, AHeight:
Integer): TRect;

주어진 좌상단 좌표와 높이, 넓이를 사용하여 TRect형의 사
각 영역을 구한다. Rect는 좌상단, 우하단 두 점의 좌표로 사
각 영역을 구하는 반면 이 함수는 좌상단과 크기를 사용하여
사각 영역을 구한다는 점이 다르다.

R := Bounds(X, Y, W, H);
즉 위와 같이 사각 영역을 구하는 식은 다음과 동일한 결과를
가져온다.

R := Rect(X, Y, X + W, Y + H);

------------------------------------------------
Break system Unit

문법 : procedure Break;

forwhile, repeat 등의 반복문의 중간에서 사용되며 루프를 끝
내고 루프 다음의 명령으로 프로그램의 흐름을 옮기도록 한
다. 만약 반복 루프의 외부에서 이 프로시저가 사용되면 에러
이다. 다음 예는 While문으로 무한 루프를 구성하고 문자열
을 입력받아 다시 출력하기를 무한 반복하되 아무 문자도 입
력되지 않으면 루프를 종료한다.

예제)
var
 S: String;
begin
 while True do {무한 루프}
 begin
 ReadLn(S);
 if S = '' then Break; {빈 행이면 루프 종료}
 WriteLn(S);
 end;
end.
이 루프는 다음과 같이 작성해도 동일하다.

var
 S: String;
begin
 S:='temp'
 while S<>'' do
 begin
 ReadLn(S);
 WriteLn(S);
 end;

 S가 널 스트링일 때까지 반복을 하도록 변경하였다. 루프 시
작시에 조건 점검을 하므로 루프 진입 전에 S가 널이 아니도
록 아무 문자열이나 대입해 주어야 한다. 이렇게 하지 않으려
면 선 실행 후 평가문인 repeat를 사용하면 된다.

참조-델파이_함수_레퍼런스


반응형