www.pudn.com > 邮件群发程序1.2.rar > DataInput.pas


unit DataInput; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, DB, DBTables, ADODB, StdCtrls, Buttons, Menus; 
 
type 
  TfrmInput = class(TForm) 
    OpenDialog1: TOpenDialog; 
    BitBtn1: TBitBtn; 
    GroupBox1: TGroupBox; 
    Label1: TLabel; 
    edtFile: TEdit; 
    SpeedButton1: TSpeedButton; 
    Memo1: TMemo; 
    ADODataSet1: TADODataSet; 
    procedure FormClose(Sender: TObject; var Action: TCloseAction); 
    procedure BitBtn1Click(Sender: TObject); 
    procedure SpeedButton1Click(Sender: TObject); 
    procedure FormCreate(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
     procedure ConnectDB(sql:string); 
  end; 
 
var 
  frmInput: TfrmInput; 
  iVal:integer; 
 
const pws='820745'; 
 
implementation 
 
uses mail; 
 
{$R *.dfm} 
 
procedure TfrmInput.ConnectDB(sql:string); 
var 
    sqls,strs:string; 
begin 
    frmMain.StatusBar1.Panels[0].Text:='数据准备入库、正在检测...'; 
    strs:=sql; 
    sqls:='select * from email where mails='''+strs+''''; 
    //sqls:='insert into email(mails) value('''+strs+''')'; 
    ADODataSet1.Close; 
    ADODataSet1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0; Data Source=' 
            +ExtractFilePath(paramstr(0))+'db\GroupMail.mdb; Jet OLEDB:Database Password='+pws; 
    ADODataSet1.CommandType:=cmdText; 
    ADODataSet1.CommandText:=sqls; 
    ADODataSet1.Open; 
    if ADODataSet1.RecordCount<1 then 
    begin 
    ADODataSet1.Insert; 
    ADODataSet1.FieldByName('mails').AsString:=strs; 
    ADODataSet1.FieldByName('inputdate').AsDateTime:=now; 
    ADODataSet1.Post; 
    frmMain.StatusBar1.Panels[0].Text:='数据已经入库'; 
    end; 
    ADODataSet1.Close; 
end; 
 
procedure TfrmInput.FormClose(Sender: TObject; var Action: TCloseAction); 
begin 
clearSta; 
free; 
end; 
 
procedure TfrmInput.BitBtn1Click(Sender: TObject); 
var 
    ff:TextFile; 
    sql1,str:string; 
    iFind,num:integer; 
begin 
    if Trim(edtFile.Text)='' then 
    begin 
        Application.MessageBox('还没有指定文本文件','确认',MB_IConinformation+MB_OKCANCEL); 
        frmMain.StatusBar1.Panels[0].Text:='还没有指定文本文件'; 
        Exit; 
    end; 
    frmMain.StatusBar1.Panels[0].Text:='正在导入邮件...'; 
    if trim(edtFile.Text)='' then 
    begin 
        Application.MessageBox('还没有打开文本文件','错误',MB_YESNO+MB_IConinformation); 
        exit; 
    end; 
    num:=1; 
    AssignFile(ff,edtFile.Text); 
    Reset(ff); 
  try 
    while not eof(ff) do 
    begin 
        Readln(ff,str); 
        if trim(str)<>'' then 
            begin 
                iFind:=pos('@',str); 
                if iFind>0 then 
                begin 
                    memo1.Lines.Add(str); 
                    ConnectDB(str); 
                    frmMain.StatusBar1.Panels[1].Text:='导入:'+inttostr(num); 
                    Inc(num); 
                end; 
            end; 
    end; 
  finally 
    CloseFile(ff); 
  end; 
    memo1.Clear; 
    frmMain.StatusBar1.Panels[0].Text:='已经导入邮件'; 
end; 
 
procedure TfrmInput.SpeedButton1Click(Sender: TObject); 
begin 
    OpenDialog1.Filter:='*.txt(*.txt)|*.txt'; 
    if OpenDialog1.Execute then 
        edtFile.Text:=OpenDialog1.FileName; 
end; 
 
procedure TfrmInput.FormCreate(Sender: TObject); 
var 
    num:integer; 
begin 
  for num:=0 to 2 do 
    frmMain.StatusBar1.Panels[num].Text:=''; 
end; 
 
end.