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