Delphi 작업 파일 함수

파일은 같은 유형의 요소의 질서정연한 집합으로 메모리와 외부 장치 간에 데이터를 전송하는 경로이다.파일의 본질은 하나의 데이터 흐름이고, 모든 파일은 사실상 이진 서열이다.
파일 관리는 다음과 같습니다.

  • 1. 파일 작업.

  • 2. 디렉터리 작업.

  • 3. 드라이브 조작.


  • 1. 흔한 파일 조작 함수와 과정.
    1.1 AssignFile 프로세스
    역할: 외부 파일의 파일 이름을 File 형식의 변수와 연결하고 변수를 초기화합니다.원형: procedure Assign File(var F; FileName: String);F: 모든 데이터 유형이 가능한 File 유형 변수FileName: 외부 파일의 파일 이름입니다.
    1.2 FileExists 함수
    역할: 지정한 파일 이름의 파일이 존재하는지 테스트합니다.원형:function FileExists(const FileName:String):Boolean;FileName: 파일 이름.문자열 유형입니다.참고: 파일이 있는 경우 True로 돌아갑니다.그렇지 않으면 False가 반환됩니다.
    1.3 Append 프로세스
    역할: 이미 존재하는 파일의 끝에 텍스트를 추가하기 위한 준비 작업을 합니다.파일은 쓰기 방식으로만 열립니다.원형: procedure Append(var F: Text),F:TextFile 유형 변수참고: 텍스트 유형 파일을 조작하는 프로세스입니다.여기서 변수 F는 외부 파일과 연관되어야 합니다.F가 외부 파일과 연결되지 않으면 예외가 발생합니다.F가 이미 열려 있으면 프로세스가 F를 닫고 다시 열립니다.파일 포인터 위치가 파일 끝에 설정됩니다.
    1.4 Reset 프로세스
    역할: 텍스트 파일의 경우 Reset 프로세스가 읽기 전용으로 파일을 엽니다.Reset 프로세스는 유형 파일 및 비유형 파일의 경우 읽기 및 쓰기로 파일을 엽니다.원형: procedure Reset(var F [:File; RecSize: Word]),F:File 유형 변수는 파일 유형일 수 있습니다.RecSize: 파일 크기입니다.이 옵션은 F가 유형 파일이 없는 경우에만 지정할 수 있습니다.F가 유형 파일이 없는 경우 RecSize는 데이터 전송 중에 사용되는 레코드의 크기를 지정합니다.매개변수 RecSize가 생략된 경우 기본 레코드 크기는 128바이트입니다.주의: 이 과정이 파일을 열 때, 파일이 존재하지 않으면 이상이 발생합니다.파일이 이미 열려 있으면 먼저 파일을 닫은 다음 다시 열고 포인터를 파일의 시작 부분에 놓으십시오.기본 파일 모드(FileMode)는 2이며 읽기 및 쓰기 모드입니다.Reset 프로세스를 호출하기 전에 파일 모드가 변경되지 않은 경우 읽기 전용 파일을 열려고 하면 장애가 발생합니다.Reset 프로세스를 호출한 후 파일이 비어 있으면 Eof 함수는 True를 반환하고 그렇지 않으면 False를 반환합니다.
    1.5, Rewrite 프로세스
    역할: 존재하는 파일의 경우 파일을 덮어씁니다.존재하지 않는 파일에 대해 파일을 만들고 열 것입니다.열린 파일의 경우 파일을 닫고 원래 파일을 덮어쓰는 새 파일을 다시 만듭니다.파일 포인터도 빈 파일의 시작에 설정됩니다.원형: procedure Rewrite(var F: File [; Recsize: Word]);F:File 유형 변수는 파일 유형일 수 있습니다.RecSize: 파일 크기입니다.이 옵션은 F가 유형 파일이 없는 경우에만 지정할 수 있습니다.F가 유형 파일이 없는 경우 RecSize는 데이터 전송 중에 사용되는 레코드의 크기를 지정합니다.매개변수 RecSize가 생략된 경우 기본 레코드 크기는 128바이트입니다.참고: AssignFile (F, ') 과 같은 빈 파일 이름을 지정하면 Rewrite 프로세스가 호출될 때 F는 표준 출력 파일입니다.F가 텍스트 파일인 경우 F는 쓰기 전용 모드입니다.Rewrite 프로세스를 호출하면 Eof(F)는 항상 True가 됩니다.
    1.6 Flush 함수
    역할: 출력으로 열린 텍스트 버퍼를 비우고 모든 쓰기 문자가 외부 파일에 기록될 수 있도록 합니다.원형: function Flush(var t: Text): Integer;F:F는 텍스트 유형 변수입니다.주의: 이 함수는 텍스트 파일 처리에만 사용됩니다.작업이 성공하면 Flush가 0을 반환하고 그렇지 않으면 오류 코드가 반환됩니다.Rewrite 프로세스 또는 Append 프로세스를 사용하여 텍스트 파일을 열어 출력할 때Flush 함수는 파일의 버퍼를 비우는 데 사용됩니다.이 과정은 버퍼의 모든 문자가 외부 파일에 기록되었음을 보장합니다.Flush 함수는 가져오기 때문에 열린 파일의 경우 작동하지 않습니다.
    1.7 Read 프로세스
    역할: 파일에서 데이터를 읽는 데 사용됩니다.원형:procedure Read(F,V1[,V2,...,Vn]);           procedure Read( [ var F: Text; ] V1 [, V2,...,Vn ] ); F: 파일 변수입니다.V1...Vn: 파일에서 읽은 데이터를 저장합니다.참고: Delphi에서 Read 프로세스에는 두 가지 구문이 있습니다. 매개변수 F가 유형 파일이면 프로세스 Read는 한 그룹의 데이터를 변수로 읽습니다.매개변수 F가 텍스트 파일 변수인 경우 프로세스 Read는 하나 이상의 값을 하나 이상의 변수로 읽습니다.
    1.8 ReadLn 프로세스
    역할: 파일에서 텍스트 한 줄을 읽는 데 사용합니다.원형: procedure ReadLn([var F: Text;]V1 [, V2, ...,Vn ]); V: 텍스트 파일 변수.V1...V2: 읽은 텍스트를 저장하는 데 사용됩니다.참고: Delphi에서 ReadLn 프로세스는 텍스트 파일의 텍스트 행을 읽고 텍스트 파일의 다음 행으로 건너뜁니다.
    1.9 Write 프로세스
    역할: 텍스트 파일에 데이터를 쓰는 데 사용합니다.원형: procedure Write([var F: Text;]P1 [ , P2,..., Pn] );//텍스트 유형 파일 procedure Write(F, V1,...Vn);//유형 파일 F: 텍스트 파일 비율 변수가 있습니다.P1...Pn: 파일에 기록된 데이터를 나타냅니다.참고: 텍스트 파일에 기록된 컨텐트는 스트링 유형 변수여야 합니다.형식 파일이 있는 경우, 쓰는 것은 반드시 특정한 형식의 데이터가어야 한다.
    1.10, WriteLn 프로세스
    역할: 텍스트 파일에 내용을 추가하는 데 사용합니다. 즉, 내용을 쓴 뒤에 리턴 줄 바꾸기가 있습니다.원형: procedure WriteLn ([var F: Text;]P1 [, P2, ...,Pn ] ); F: 텍스트 파일 비율 변수.
    1.11, Eof 함수
    역할: 파일의 끝에 도달했는지 판단하는 데 사용됩니다.원형: function Eof(var F): Boolean;//유형 파일 및 유형 없음 파일용 function Eof [(var F: Text)]: Boolean,//텍스트 파일의 일반적인 용도: 파일이 비어 있거나 현재 위치가 마지막 문자 뒤에 있으면 True로 돌아갑니다.그렇지 않으면 False가 반환됩니다.
    1.12, Eoln 함수
    역할: 파일 포인터가 한 줄의 마지막을 가리키는지 테스트합니다. 텍스트 파일에 적용됩니다.만약 현재 위치가 한 줄의 끝이나 Eof(F) 함수에서 True를 되돌려준다면 Eoln은 True를 되돌려준다.그렇지 않으면 False가 반환됩니다.원형: function Eoln [(var F: Text)]: Boolean;전형적인 응용 프로그램: 프로그램에서 텍스트 파일을 조작할 때 때때로 데이터의 읽기를 제한해야 한다.한 줄의 어느 위치에서 한 줄로 끝나는 부분만 읽으면프로그램에서 Eoln 함수를 사용하여 판단할 수 있습니다.
    1.13, CloseFile 프로세스
    역할: 파일을 닫는 데 사용되며, 동료는 파일 레코드판의 파일을 관련 파일 변수와 연결이 끊어집니다.원형: procedure CloseFile(var F);F: 파일 형식 변수 주의: 일반적으로 CloseFile 프로세스는try...finally... 모듈과 결합하여 사용됩니다.
    1.14, DeleteFile 함수
    역할: 파일을 레코드판에서 삭제합니다.원형:function DeleteFile (const FileName:string):Boolean;참고: 파일이 없거나 삭제할 수 없는 경우 False로 돌아갑니다.그렇지 않으면 True로 돌아갑니다.
    1.15, Erase 프로세스
    역할: 존재하는 파일을 삭제합니다.원형: procedure Erase(var F);참고: 파일이 열려 있으면 삭제를 수행하기 전에 파일을 닫습니다.
    1.16, FileGetAttr 함수
    역할: 파일의 속성 설정을 가져오는 데 사용합니다.원형:function FileGetAttr(const FileName:string):Integer;주의: 구체적인 반환값 코드는 도움말을 참조합니다.
    다음은 Delphi의 파일 조작 절차를 총괄해 보겠습니다.
    Delphi에서 파일은 세 가지로 나뉘는데 그것이 바로 텍스트 파일, 유형 파일과 무형식 파일이다.
    텍스트 파일은 임의의 파일 편집기에서 읽을 수 있는 ASCII 파일입니다.형식 파일은 프로그래머가 정의한 데이터 형식의 파일을 포함합니다.형식이 없는 파일은 다른 모든 파일 형식을 포함합니다.
    1. 텍스트 파일
    Step 1에서는 AssignFile()을 호출하여 파일 변수를 연결합니다.예: AssignFile(MyTextFile,'TextFile.txt');
    Step 2 파일을 엽니다.파일을 여는 방법은 다음과 같습니다. 1.Rewrite 프로세스는 이미 존재하는 파일에 대해 파일을 만들고 엽니다. 이 동작은 파일을 덮어씁니다.2. Reset 프로세스를 사용하여 파일을 읽기 전용으로 엽니다.3. Append 프로세스를 사용하여 이미 존재하는 텍스트 파일에 텍스트를 추가합니다.
    Step 3은 파일을 조작합니다.Write 또는 Read 작업 같은 경우
    Step 4는 CloseFile을 사용하여 열려 있는 파일을 닫습니다.다음은 텍스트 파일 작업의 예입니다.예1:
    procedure TForm1.Button1Click(Sender: TObject);
    var
    MyTextFile: TextFile;          //    MyTextFile       begin
    (*  1,            。           “  ”*)
    AssignFile(MyTextFile, ‘TextFile.txt’);
    (*           ,        。*)
    if FileExists(‘TextFile.txt’) then
    (*  2,    ,      ,             。*)
        Append(MyTextFile)
    else
        Rewrite(MyTextFile);
    try
    (*  3,       。*)
        WrtieLn(MyTextFile, ‘          !’);
        Flush(MyTextFile);     //     ,             。
    finally
        (*  4,       ,CloseFile  try…finally  ,       *)
        CloseFile(MyTextFile);
    end;
    end;

    2. 유형 파일
    Step 1 정의 데이터 구조 Step 2는 AssignFile()를 호출하여 파일 변수를 유형 파일과 연결합니다.Step 3은 유형 파일을 엽니다.Step 4는 유형 파일을 조작합니다.Step 5는 열려 있는 파일을 닫습니다.다음 예는 형식 파일의 동작을 보여 줍니다.예2:
    (*  1,      。*)
    type
    TPerson = record
        Name: string[20];
        Sex: string[4]
        Age: Integer;
    End;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
    PersonFile: fileof TPerson;     //  PersonFile   TPerson    
    Person: TPerson;
    begin
    (*  2,    。*)
    AssignFile(PersonFile, ‘Person.dat’);
    (*  3,    。 *)
    Reset(PersonFile);
    try
        While not Eof(PersonFile) do
    (*  4,       。*)
        begin
          Read(PersonFile, Person);
          Memo1.Lines.Add(Person.Name);
          Memo1.Lines.Add(Person.Sex);
          Memo1.Lines.Add(IntToStr(Person.Age));
        end;
    finally
        (*  5,    。*)
        CloseFile(PersonFile);
    end;
    end;

    좋은 웹페이지 즐겨찾기