StartprogrammingusingObjectPascal:Records

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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;


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