Delphi5实现文件拷贝程序

效果图

在这里插入图片描述

opendialog、savedialog组件

对于类似TOpenDialog和TSaveDialog的功能,在Delphi 5中,你可能需要这样做:

  1. 查找或创建:首先,在Delphi 5的组件面板中查找是否有现成的文件对话框组件(拖拉组件下来到form那)。如果没有,你可能需要查看Delphi的文档或搜索在线资源以了解如何调用Windows API来实现这一点。
  2. 配置对话框:无论你是通过组件还是代码来创建对话框,你都需要配置它的属性,如过滤器(filter,这样可以设定显示文件的后缀名)、标题等。
  3. 显示对话框:调用对话框的显示方法(如Execute),让用户选择文件。
  4. 处理结果:根据用户的选择(如选择的文件名),执行相应的操作(如打开或保存文件)。

配置对话框属性

procedure TForm1.FormCreate(Sender: TObject);
begin
  dlgOpen1.Filter:='文本文档(*.txt)|*.TXT';
  dlgSave1.Filter:='文本文档(*.txt)|*.TXT';
end;

点击“打开”按钮

opendialog组件能打开文件对话框,并把选中文件的文件名返回。不能加载文件。

procedure TForm1.btn1Click(Sender: TObject);
begin
  if dlgOpen1.Execute then   //打开文档选择
  begin
    edt1.Text:=dlgOpen1.FileName;    //将选中的文档名赋值到输入框
  end;
end;

点击“复制”按钮

savedialog组件也能打开文件对话框,并把要保存的文件名返回。但是不能执行保存操作。

总体的算法逻辑:

  1. 打开文件对话框,把要读取的文件名返回。
  2. 打开文件对话框,把要保存的文件名返回。
  3. 打开要读的文件。
  4. 打开要写的文件。
  5. 读(read)文件的一个字符到ch,然后再把ch写(write)进去。
  6. 读完写完,关闭两个文件。
procedure TForm1.btn2Click(Sender: TObject);
var
  Sfilename,Dfilename:string;   //源文件名、目标文件名
  F1,F2:TextFile;
  ch:Char;

begin
  if dlgSave1.Execute then  //打开保存文件对话框
  begin
    edt2.Text:=dlgSave1.FileName;   //目标文件名
    Sfilename:=edt1.Text;//源文件名
    Dfilename:=edt2.Text+'.txt'; //目标文件名

    if Length(Sfilename) <> 0 then      //源文件名不能为空
    begin
      AssignFile(F1,Sfilename);//将源文件和F1文件型变量联系到一起
      Reset(F1);  //读打开文件

      if Length(Dfilename)<>0 then
      begin
        AssignFile(F2,Dfilename);
        Rewrite(F2);
        while not Eof(F1) do     // 当未到文件末尾时循环
        begin
          read(F1,ch);
          write(F2,ch);
        end;
        CloseFile(F2);
      end
      else
        ShowMessage('目标文件名必须输入');

      CloseFile(F1);   //关闭文件
      showmessage('复制完成');
    end
    else
      ShowMessage('源文件名必须输入');
  end;
end;

完整代码

unit Unit1;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Dialogs, Forms,Form, Formprpt, StdCtrls;

type
  TForm1 = class(MForm)
    lbl1: TLabel;
    lbl2: TLabel;
    edt1: TEdit;
    edt2: TEdit;
    btn1: TButton;
    btn2: TButton;
    dlgOpen1: TOpenDialog;
    dlgSave1: TSaveDialog;
    procedure btn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

{点击 打开 按钮}
procedure TForm1.btn1Click(Sender: TObject);
begin
  if dlgOpen1.Execute then   //打开文档选择
  begin
    edt1.Text:=dlgOpen1.FileName;    //将选中的文档名赋值到输入框
  end;
end;

{点击 复制 按钮}
procedure TForm1.btn2Click(Sender: TObject);
var
  Sfilename,Dfilename:string;   //源文件名、目标文件名
  F1,F2:TextFile;
  ch:Char;

begin
  if dlgSave1.Execute then  //打开保存文件对话框
  begin
    edt2.Text:=dlgSave1.FileName;   //目标文件名
    Sfilename:=edt1.Text;//源文件名
    Dfilename:=edt2.Text+'.txt'; //目标文件名

    if Length(Sfilename) <> 0 then      //源文件名不能为空
    begin
      AssignFile(F1,Sfilename);//将源文件和F1文件型变量联系到一起
      Reset(F1);  //读打开文件

      if Length(Dfilename)<>0 then
      begin
        AssignFile(F2,Dfilename);
        Rewrite(F2);
        while not Eof(F1) do     // 当未到文件末尾时循环
        begin
          read(F1,ch);
          write(F2,ch);
        end;
        CloseFile(F2);
      end
      else
        ShowMessage('目标文件名必须输入');

      CloseFile(F1);   //关闭文件
      showmessage('复制完成');
    end
    else
      ShowMessage('源文件名必须输入');
  end;
end;

{窗体初始化}
procedure TForm1.FormCreate(Sender: TObject);
begin
  dlgOpen1.Filter:='文本文档(*.txt)|*.TXT';
  dlgSave1.Filter:='文本文档(*.txt)|*.TXT';
end;

end.
  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值