StartprogrammingusingObjectPascal:CreateAndAppendStudentMarksProgram: Difference between revisions

From 흡혈양파의 번역工房
Jump to navigation Jump to search
(SPOP 학생성적을새로만들고덧붙이는프로그램 페이지 추가)
 
(번역수정 및 소스코드 오류수정)
 
Line 34: Line 34:
     begin
     begin
         Rewrite(F);
         Rewrite(F);
         Writeln('File does not exist,, not it is created');
         Writeln('File does not exist, not it is created');
     end;
     end;


Line 52: Line 52:
</syntaxhighlight>
</syntaxhighlight>


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


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

Latest revision as of 10:05, 4 April 2013

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

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


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