delphi 파일 읽기와 쓰기 작업
텍스트 파일 읽기 및 쓰기
선언: Delphi는 텍스트 파일, 레코드 파일, 유형 없는 세 가지 파일 유형을 지원합니다.텍스트 파일은 비헤이비어 단위로 읽기, 쓰기됩니다.각 줄의 길이가 반드시 같지 않기 때문에 주어진 줄이 파일의 정확한 위치를 계산할 수 없기 때문에 순서대로 읽기와 쓰기만 할 수 있다.텍스트 파일은 읽기나 쓰기만 할 수 있으며, 열린 텍스트 파일에서 읽기와 쓰기를 동시에 할 수 없습니다.텍스트 파일을 열려면 다음 두 단계가 필요합니다. 1.파일 변수는 파일 이름과 연결됩니다.2. 읽기와 쓰기를 초기화합니다.1. 파일 변수가 파일 이름과 연관됨: AssignFile(VarTxt, FileName);FileName 경로를 생략하면 현재 디렉토리가 기본값으로 설정됩니다.2. 읽기와 쓰기를 초기화하는 데는 세 가지 방법이 있다. (1) Reset: 읽기만 하고 열면 바늘을 파일 헤더로 옮긴다.(2) Rewrite: 새 파일을 만들고 열고 쓰기만 합니다.(3) Append: 끝에서 추가되며 포인터는 당연히 파일 끝에 있습니다.파일이 존재하지 않을 때 Reset 또는 Append를 사용하면 입출력 예외가 발생합니다.마지막으로 CloseFile을 사용하여 파일을 닫습니다.Delphi는 호환성을 유지하기 위해 Assign을 사용하여 연관을 설정하고 Close를 사용하여 파일을 닫을 수도 있습니다.
//    :
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
var
  F: Text;  //TextFile   Text     
  FileName: string = 'c:/temp/test.txt';
//   
procedure TForm1.Button1Click(Sender: TObject);
begin
  AssignFile(F,FileName);
  Rewrite(F);  //         
  Writeln(F, '   ');
  Writeln(F, '   ');
  CloseFile(F);
end;
//   (      )
procedure TForm1.Button2Click(Sender: TObject);
var
  s: string;
begin
  AssignFile(F,FileName);
  Reset(F);  //    
  Readln(F, s);   //  
  ShowMessage(s); //  :    
  Readln(F, s);   //    
  ShowMessage(s); //  :    
  CloseFile(F);
end;
//  
procedure TForm1.Button3Click(Sender: TObject);
begin
  AssignFile(F,FileName);
  Append(F);  //      
  Writeln(F, '   ');
  Writeln(F, '   ');
  CloseFile(F);
end;
//    (  Memo    )
procedure TForm1.Button4Click(Sender: TObject);
var
  s: string;
begin
  AssignFile(F,FileName);
  Reset(F);  //    
  Memo1.Clear;
  while not Eof(F) do
  begin
    Readln(F, s);
    Memo1.Lines.Add(s);
  end;
  CloseFile(F);
end;
//    
procedure TForm1.Button5Click(Sender: TObject);
  //           :      s    n    
  function AddSpace(s: string; n: Word): string;
  begin
    while Length(s) < n do
    begin
      s := s + ' ';
    end;
    Result := s;
  end;
var
  name: string[8];
  address: string[16];
begin
  AssignFile(F, FileName);
  Rewrite(F);
  name := '  ';
  name := AddSpace(name,8);
  address := '    ';
  address := AddSpace(address,16);
  Writeln(F, name, address);
  name := '   ';
  name := AddSpace(name,8);
  address := '        ';
  address := AddSpace(address,16);
  Writeln(F, name, address);
  name := '    ';
  name := AddSpace(name,8);
  address := '      ';
  address := AddSpace(address,16);
  Writeln(F, name, address);
  CloseFile(F);
{      :
            
               
            
}
end;
//    
procedure TForm1.Button6Click(Sender: TObject);
var
  name: string[8];
  address: string[16];
begin
  AssignFile(F, FileName);
  Reset(F);
  Memo1.Clear;
  while not Eof(F) do
  begin
    Readln(F, name);
    Memo1.Lines.Add(name);
  end;
  CloseFile(F);
  Reset(F);
  while not Eof(F) do
  begin
    Readln(F, name, address);
    Memo1.Lines.Add(address);
  end;
  CloseFile(F);
{    :
        
       
      
              
          
            
}
end;
//            
procedure TForm1.Button7Click(Sender: TObject);
var
  name: string[6];
  age: Word;
  birthday: TDate;
begin
  AssignFile(F,FileName);
  Rewrite(F);
  name := '    ';  //       6   
  age := 18;
  birthday := StrToDate(DateToStr(Now-18*365));  //        
  Writeln(F,name,age,birthday);
  CloseFile(F);
  Reset(F);
  Readln(F,name,age,birthday);
  Memo1.Clear;
  Memo1.Lines.Add(name);
  Memo1.Lines.Add(IntToStr(age));
  Memo1.Lines.Add(DateToStr(birthday));
  CloseFile(F);
{    :
    
  18
  1989-12-23
}
//                   ,                 ?
end;
end.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
제한된 크기의 디렉토리를 만드는 방법오늘 저는 장치에 공간이 없을 때 백업 중에 응용 프로그램이 어떻게 작동하는지 테스트(및 수정)하는 작업이 있습니다. 결과적으로 "남은 공간 없음"오류로 백업이 실패하면 새 파일이 없어야 합니다. 지금까지 문제를 재...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.