StartprogrammingusingObjectPascal:CreateAndAppendStudentMarksProgram: Difference between revisions
Jump to navigation
Jump to search
Onionmixer (talk | contribs) (SPOP 학생성적을새로만들고덧붙이는프로그램 페이지 추가) |
Onionmixer (talk | contribs) (번역수정 및 소스코드 오류수정) |
||
Line 34: | Line 34: | ||
begin | begin | ||
Rewrite(F); | Rewrite(F); | ||
Writeln('File does not exist | 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 프로시저를 사용하지 않은대신 모든 파일의 내용을 먼저 읽었습니다. 이 동작(모든 파일을 읽기)는 포인터를 파일의 마지막으로 이동시킵니다.
다음 예제에서는 자동차의 정보를 저장하기 위해 레코드로 이루어진 파일을 사용할 것입니다.