📄 u_dealdata.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 + -