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

📄 unit1.pas

📁 从英文单词提取、到网上下载翻译
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB, OleCtrls, SHDocVw, ExtCtrls,
  ComCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    ADOQuery1: TADOQuery;
    DBGrid1: TDBGrid;
    Button2: TButton;
    DataSource1: TDataSource;
    ADOQuery2: TADOQuery;
    Button3: TButton;
    Edit1: TEdit;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    Button16: TButton;
    WebBrowser1: TWebBrowser;
    Button17: TButton;
    Button18: TButton;
    Label1: TLabel;
    Edit2: TEdit;
    Label2: TLabel;
    Timer1: TTimer;
    ProgressBar1: TProgressBar;
    Button19: TButton;
    Edit3: TEdit;
    Label3: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
    procedure Button18Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button19Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
   myi:integer;
   add:array[0..100000] of array[0..1] of string;
   mymem:string;
   myio:integer;
implementation

{$R *.dfm}

function mydo(a:string;b:integer):string;
var
sql:string;
num:integer;
begin
        form1.adoquery1.Close;
        form1.adoquery1.SQL.Clear;
        sql:='select * from lib where 单词='+#39+a+#39;
           try
         form1.adoquery1.SQL.Add(sql);
         form1.adoquery1.Open ;
           except
           end;
       sql:='';
   if   form1.adoquery1.FieldByName('单词').Asstring=a  then
             begin //4
             num:=form1.adoquery1.FieldByName('频率').AsInteger+b;
             sql:='update lib set 频率='+inttostr(num)+' where 单词='+#39+a+#39;
             end
       else
           sql:='insert into lib (单词,频率) values ('+#39+a+#39+','+inttostr(b)+')';


              form1.adoquery1.Close;
              form1.adoquery1.SQL.Clear;
             try
              form1.adoquery1.SQL.Add(sql);

              form1.adoquery1.ExecSQL
              except 
           end;  //4.1
end;
function insert(a:string):string;
var

n,j,i,mytime:integer;

begin

if ((a<>'')and (length(a)>2)) then
    begin
     {  for j:=0 to length(a)-1 do
       if (a[j] in ['A'..'Z'])then
        a[j]:=fun2(a[j]);  }

    n:=10 ;
        for i:=0 to myi-1 do
         if add[i][0]=a then
          begin 
             mytime:=strtoint(add[i][1])+1;
             add[i][1]:=inttostr(mytime);
             n:=20;
             break;
          end ;

   if n=10 then
             begin
             add[myi][0]:=a;
             add[myi][1]:='1';
             myi:=myi+1;
            end;
    end;  
end;

function  myadd(a:string;b:integer):string;
var
sql,addsql:string;
begin


sql:='delete * from lib where 单词='+#39+form1.edit1.Text+#39;
      form1.adoquery1.Close;
              form1.adoquery1.SQL.Clear;
              try
              form1.adoquery1.SQL.Add(sql);
              form1.adoquery1.ExecSQL
              except
              end;

  addsql:='delete * from mylib where 单词='+#39+a+#39; 
              form1.adoquery1.Close;
              form1.adoquery1.SQL.Clear;
              try
              form1.adoquery1.SQL.Add(addsql);
              form1.adoquery1.ExecSQL
              except
              end;

      addsql:='insert into mylib (单词,熟练度,频率) values ('+#39+a+#39','+inttostr(b)+','+#39+mymem+#39+')';
      form1.adoquery1.Close;
              form1.adoquery1.SQL.Clear;
              try
              form1.adoquery1.SQL.Add(addsql);
              form1.adoquery1.ExecSQL
              except
              end;
              sleep(300);
  if myio=1 then
 form1.button2.Click
 else if myio=2 then
form1.button18.Click;

end;
procedure TForm1.Button1Click(Sender: TObject);

var
st,buff,buf,word:string;
i:integer;

begin
    st:=ExtractFilePath(Application.ExeName);
    adoquery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+st+'english.mdb;Persist Security Info=False';
      memo1.Lines.LoadFromFile(st+'eng.txt');
buf:=memo1.Text ;

{for i:=0 to length(buff)-1 do
begin
     if not ((buff[i] in['A'..'Z']) or (buff[i] in ['a'..'z'])) then
     begin
     buf:=StringReplace(buff,'buff[i]',' ',[rfReplaceAll]);
     end
end;

               repeat
               if pos('  ',buf)>0 then
               delete(buf,pos('  ',buf),1);
               until   pos('  ',buf)<=0;
  word:='';    }

for i:=0 to length(buf)-1 do
 if ((buf[i] in ['A'..'Z']) or (buf[i] in ['a'..'z']))  then
 word:=word+buf[i]
 else
 if ((buf[i-1] in ['A'..'Z']) or (buf[i-1] in ['a'..'z']))  then
       begin
    // showmessage('zzzzzz');
     insert(word);
     word:='';
  end;

showmessage('ok00000000000000'); 
for i:=0 to myi-1 do
begin

mydo(add[i][0],strtoint(add[i][1]));

end;

myi:=0;

end;

procedure TForm1.Button2Click(Sender: TObject);
var
sql:string;
begin
myio:=1;
ProgressBar1.Position:=0;
 form1.adoquery2.Close;
         form1.adoquery2.SQL.Clear;
        sql:='select * from lib  where 频率>3 order by 频率 desc';
         form1.adoquery2.SQL.Add(sql);
         form1.adoquery2.Open ;

  label1.Caption:='一共有'+ inttostr(form1.adoquery2.RecordCount)+'条记录!';


end;

procedure TForm1.FormCreate(Sender: TObject);
var
st:string;
i:integer;
begin
myio:=0;
 progressbar1.Max:=30 ;
    st:=ExtractFilePath(Application.ExeName);
    adoquery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+st+'english.mdb;Persist Security Info=False';
      adoquery2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+st+'english.mdb;Persist Security Info=False';
 myi:=0;
 for i:=0 to 100000 do
 add[i][1]:='0';



end;

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
edit1.text:= DBGrid1.Columns.Grid.Fields[1].AsString ;
mymem:=DBGrid1.Columns.Grid.Fields[2].AsString ;
ProgressBar1.Position:=0;

end;

procedure TForm1.Button3Click(Sender: TObject);
var
sql:string;
begin
sql:='delete * from lib where 单词='+#39+edit1.Text+#39;
      form1.adoquery1.Close;
              form1.adoquery1.SQL.Clear;
              try
              form1.adoquery1.SQL.Add(sql);
              form1.adoquery1.ExecSQL
              except
              end;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin
  myadd(edit1.Text,1);
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  myadd(edit1.Text,2);
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  myadd(edit1.Text,3);
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  myadd(edit1.Text,4);
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  myadd(edit1.Text,5);
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
  myadd(edit1.Text,6);
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
  myadd(edit1.Text,7);
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
  myadd(edit1.Text,8);
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
  myadd(edit1.Text,9);
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
  myadd(edit1.Text,-1);
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
  myadd(edit1.Text,-2);
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
  myadd(edit1.Text,-3);
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
  myadd(edit1.Text,-4);
end;

procedure TForm1.Button17Click(Sender: TObject);
begin
form1.WebBrowser1.Navigate('http://translate.google.com/translate_t#en|zh-CN|'+edit1.Text);
end;

procedure TForm1.Button18Click(Sender: TObject);
var
sql:string;
begin
myio:=2;
 ProgressBar1.Position:=0;
 form1.adoquery2.Close;
         form1.adoquery2.SQL.Clear;
        sql:='select * from mylib where 熟练度<'+edit2.Text+'and 熟练度>'+edit3.Text+' order by 单词 desc';
         form1.adoquery2.SQL.Add(sql);
         form1.adoquery2.Open ;
      form1.adoquery2.RecordCount;
 label1.Caption:='一共有'+ inttostr(form1.adoquery2.RecordCount)+'条记录!';

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if edit1.Text<>'' then
 progressbar1.StepBy(1);
end;

procedure TForm1.Button19Click(Sender: TObject);
begin
 myadd(edit1.Text,-5);
end;

end.


⌨️ 快捷键说明

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