StartprogrammingusingObjectPascal:DisplayFileContentsProgram

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

파일 내용 보여주기 프로그램

Program ReadContents;

{$mode objfpc}{$H+}

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

var
    FileName: string;
    F: file;
    Block: array [0 .. 1023] of Byte;
    i, NumRead: Integer;
begin
    Write('Input source file name: ');
    Readln(FileName);

    if FileExists(FileName) then
    begin
        AssignFile(F, FileName);

        FileMode:= 0;         // open for read only
        Reset(F, 1);
        while not Eof(F) do
        begin
            BlockRead(F, Block, SizeOf(Block), NumRead);
            // display contents in screen
            for i:= 0 to NumRead - 1 do
                Writeln(Block[i], ':', Chr(Block[i]));
        end;
        CloseFile(F);
    end
    else // File does not exist
        Writeln('Source File does not exist');

    Write('press enter key to close..');
    Readln;
end.

이 예제를 실행하고 예제에 대하여 텍스트 파일 이름을 입력하고 나면, 처음에는 CR/LF 값 (13/10)을 보게 되는데, 제각각의 문자 코드 (ASCII)를 표시하기 때문입니다. 리눅스에서는 10진수로 10의 값을 갖는 라인 피드 (LF)만 보게 됩니다.

그림이나 실행파일과 같은 다른 형식의 파일도 내부가 어떻게 생겼는지 보기 위해 표시할 수 있습니다.

이 예제에서 메모리에 97이라는 바이트 값으로 저장된 a 와 65라는 바이트 값으로 저장된 A와 같은 문자들의 숫자 값을 얻기 위해 Chr 함수를 사용했습니다.