StartprogrammingusingObjectPascal:Records

From 흡혈양파의 번역工房
Jump to: navigation, search

Record

배열은 같은 형의 많은 변수들을 지닐 수 있지만, record 는 제각기 다른 형의 변수를 지닐 수 있으며, 이 변수들을 'Field' 라고 부릅니다.


이 변수/필드의 모임은 단일 Unit 이나 변수처럼 취급합니다. 예를 들어 자동차 정보와 같은 것들을 하나의 객체에 주려 할 때 레코드를 사용할 수 있습니다.

  1. 자동차 형식: 문자열 변수
  2. 엔진 크기: 실수
  3. 생산 연도: 정수 값


다음 예제에서는 제각각 다른 이 형식들을 자동차를 나타내는 레코드에 모을 수 있습니다.

program Cars;

{$mode objfpc}{$H+}

uses
    {$IFDEF UNIX}{$IFDEF UseCThreads}
    cthreads,
    {$ENDIF}{$ENDIF}
    Classes
    { you can add units after this };

type
    TCar = record
        ModelName: string;
        Engine: Single;
        ModelYear: Integer;
    end;
var
    Car: Tcar;
begin
    Write('Input car Model Name: ');
    Readln(Car.ModelName);
    Write('Input car Engine size: ');
    Readln(Car.Engine);
    Write('Input car Model year: ');
    Readln(Car.ModelYear);
    Writeln;

    Writeln('Car information: ');
    Writeln('Model Name : ', Car.ModelName);
    Writeln('Engine size : ', Car.Engine);
    Writeln('Model Year : ', Car.ModelYear);
    Write('Press enter key to close..');
    Readln;
end.


이 예제에서는 ‘type’ 키워드를 사용하여 새 형식(record)을 정의했습니다.

type
    TCar = record
        ModelName: string;
        Engine: Single;
        ModelYear: Integer;
    end;


변수가 아니라 형식이라는 것을 표시하기 위해 Car에 문자(T)를 더했습니다. 변수 이름은 Car, Hour, UserName처럼 될 수 있지만, 형식 이름은 Tcar, Thour, TUserName과 같이 되어야 합니다. 이것은 파스칼 언어의 표준입니다.


이 새로운 형을 사용하려면, 이 형의 변수를 예제와 같이 선언할 것입니다.

var
    Car: TCar;


이 변수/필드들 중 하나에 값을 저장하려면 다음과 같이 접근합니다.

    Car.ModelName;


레코드는 이 책의 임의 접근 파일 에서 사용할 것입니다.