StartprogrammingusingObjectPascal:CreateAndAppendStudentMarksProgram

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.

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

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 프로시저를 사용하지 않은대신 모든 파일의 내용을 먼저 읽었습니다. 이 동작(모든 파일을 읽기)는 포인터를 파일의 마지막으로 이동시킵니다.


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