StartprogrammingusingObjectPascal:StoringStudentsMarksProgram

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

성적 프로그램

var
    F: file of Byte;
    Mark: Byte;
begin
    AssignFile(F, 'marks.dat');
    Rewrite(F); // Create file
    Writeln('Please input students marks, write 0 to exit');
    repeat
        Write('Input a mark: ');
        Readln(Mark);
        if Mark <> 0 then // Don't write 0 value
            Write(F, Mark);
    until Mark = 0;
    CloseFile(F);
    Write('Press enter key to close..');
    Readln;
end.

이 예제에서 형식적 파일을 정의하는 이런 구문을 사용했습니다.

F: file of Byte;

이는 파일에 0부터 255까지의 값을 지닐 수 있는 Byte 데이터 형을 지닌 레코드를 포함하고 있다는 뜻입니다.

그리고 Rewrite 프로시저를 사용하여 파일을 만들고 기록하기 위해 엽니다.

Rewrite(F); // Create file

또한 형식적 파일에 레코드를 기록하기 위해 Writeln 대신 Write 함수를 사용했습니다.

Write(F, Mark);

Writeln은 형식적 파일에 적당하지 않은데, Writeln은 기록한 텍스트의 마지막에 CR/LF 문자를 덧붙이지만, Write는 어떤 덧붙임없이 레코드에 저장하기 때문입니다. 이 경우 10 레코드(바이트 단위)를 입력했다면, 파일 크기는 디스크에서 10 바이트를 차지하게 될 것입니다.

다음 예제에서는 파일의 내용을 어떻게 표시할 지 보여드리겠습니다.