StartprogrammingusingObjectPascal:CreateAndAppendStudentMarksProgram

From 흡혈양파의 번역工房
Revision as of 10:05, 4 April 2013 by Onionmixer (talk | contribs) (번역수정 및 소스코드 오류수정)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

학생 성적을 새로 만들고 덧붙이는 프로그램

Program ReadWriteMarks;

{$mode objfpc}{$H+}

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

var
    F: file of Byte;
    Mark: Byte;
begin
    AssignFile(F, 'marks.dat');
    if FileExists('marks.dat') then
    begin
        FileMode:= 2; // Open file for read/write
        Reset(F); // open file
        Writeln('File already exist, opened for append');
        // Display file records
        while not Eof(F) do
        begin
            Read(F, Mark);
            Writeln('Mark: ', Mark);
        end
    end

    else // File not found, create it
    begin
        Rewrite(F);
        Writeln('File does not exist, not it is created');
    end;

    Writeln('Please input students marks, write 0 to exit');
    Writeln('File pointer position at record # ', FilePos(f));
    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.


참고로 이 예제에서는 Seek 프로시저를 사용하지 않은대신 모든 파일의 내용을 먼저 읽었습니다. 이 동작(모든 파일을 읽기)는 포인터를 파일의 마지막으로 이동시킵니다.


다음 예제에서는 자동차의 정보를 저장하기 위해 레코드로 이루어진 파일을 사용할 것입니다.