⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_dealdata.pas

📁 超信人力资源管理系统,一个用Delphi编写的人事管理系统
💻 PAS
字号:
unit U_DealData;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, U_Form_base, DB, ADODB, StdCtrls, FileCtrl, Buttons;

type
  TF_DealData = class(TF_Form_base)
    File_list: TFileListBox;
    Label1: TLabel;
    Label2: TLabel;
    Filepath: TEdit;
    Label3: TLabel;
    Filebakpath: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    OD: TOpenDialog;
    procedure FormShow(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  F_DealData: TF_DealData;

implementation

uses U_data;

{$R *.dfm}

procedure TF_DealData.FormShow(Sender: TObject);
begin
  inherited;
  Filepath.Text := Getcurrentpath();
  if not DirectoryExists(Getcurrentpath() + '\bak') then
  begin
    ForceDirectories(Getcurrentpath() + '\bak'); //创建新目录
   // MessageDlg('数据文件备分目录不存在。请检查是否设置正确!', mtError, [mbOK], 0);
    //Abort;
  end;
  Filebakpath.Text := Getcurrentpath() + '\bak';
end;

procedure TF_DealData.BitBtn1Click(Sender: TObject);
var
  F: TextFile;
  S: string;
  i, j: integer;
begin
  inherited;
  if File_list.Items.Count = 0 then exit;
  Q_main.Open;
  for i := 0 to File_list.Items.Count - 1 do
  begin
    j := 0; //记录错误的数据
    File_list.Directory := Getcurrentpath();
    AssignFile(F, File_list.Directory + '\' + File_list.Items.Strings[i]);
    Reset(F);
    while not eof(f) do //如果是连续读出数据:一行一行读出数据
    begin
      Readln(F, S);
      if length(s) <> 21 then //如果数据不是21位则错误
      begin
        j := j + 1;
        Continue;
      end;
    ///
    //=======入库代码
      Q_main.Append;
    //Q_main.Edit;
      Q_main.FieldByName('ICcardno').AsString := copy(s, 1, 6);
      Q_main.FieldByName('Ftime').AsString := copy(s, 7, 5);
      Q_main.FieldByName('Fdate').AsDateTime := Strtodate(copy(s, 12, 4) + '-' + copy(s, 16, 2) + '-' + copy(s, 18, 2));
      Q_main.FieldByName('Machno').AsString := copy(s, 21, 2);
    ///
    end;
    CloseFile(F);
    CopyFile(Pchar(File_list.Directory + '\' + File_list.Items.Strings[i]), Pchar(Filebakpath.text + '\' + Datetostr(date) + '-' + inttostr(i + 1) + '.txt'), false); //copy文件到备份目录
    if not DeleteFile(File_list.Directory + '\' + File_list.Items.Strings[i]) then MessageDlg('删除文件时出错!', mtError, [mbOK], 0);
    Q_main.UpdateBatch(arall);
  end;

  if j <> 0 then MessageDlg('数据文件中有 ' + inttostr(j) + ' 条错误数据!', mtWarning, [mbOK], 0);
  MessageDlg('数据读取完毕!', mtInformation, [mbOK], 0);

end;

procedure TF_DealData.BitBtn2Click(Sender: TObject);
begin
  inherited;
  Close;
end;

initialization
  RegisterClass(TF_DealData);

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -