📄 zjm.pas
字号:
unit ZJM;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, ComCtrls,dmk,bdbh,Unit2;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
OpenDialog1: TOpenDialog;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Memo2: TMemo;
Memo1: TMemo;
Label2: TLabel;
Button6: TButton;
Memo3: TMemo;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
O1: TMenuItem;
S1: TMenuItem;
X1: TMenuItem;
C1: TMenuItem;
Y1: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
Label3: TLabel;
Label4: TLabel;
N9: TMenuItem;
N10: TMenuItem;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure X1Click(Sender: TObject);
procedure N9Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses dl;
//定义扫描函数:
Function scanner(cfstr:string):string;
var
n,i:integer;
fstr:Array[1..60] of string;
begin
n:=StrLen(PChar(string(cfstr)));
for i:=1 to n do
fstr[i]:=copy(cfstr,i,1);
scanner:=fstr[1];
end;
///////////////////////////////////////////////////
/////// //////////////////////
////// 第二种句式的理解 //////////////////////
////// ///////////////////////
///////////////////////////////////////////////////
Function yffunction1(yffenxi,bdlen:string):string; // bdlen记录标点符号的位置,即第二个句号的位置与第二句话的开端的长度(第二句话的长度)。
var
poslong,poslat,str:string;
i,flag:integer;
// bdlen记录标点符号的位置,即第二个句号的位置与第二句话的开端的长度(第二句话的长度)。
fxstr:Array[1..60] of string;
resultstr,unittype1,unittype2:string;
diming:array of DimingRecord;
begin
flag:=0;
resultstr:='';
//将第二句话的每个字母赋值给fxstr数组。
for i:=1 to 14 do
begin
fxstr[i]:=copy(yffenxi,i,1);
end;
i:=1;
//部队类型的理解:即坦克团等。
while i<=strtoint(bdlen) do
begin
resultstr:=resultstr+fxstr[i];
i:=i+1;
flag:=flag+1;
if resultstr='TKT' then //坦克团
break;
if resultstr='FHT' then //防化团
break;
end;
if (resultstr='TKT') or (resultstr='FHT') then
ShowMessage('第二句话部队类型分析处语法正确')
else
ShowMessage('第二句话部队类型分析处语法错误');
unittype1:=resultstr; //赋值给unittype1用于最好的函数的输出.
// 动词理解,比如担任、受命等:
resultstr:='';
for i:=flag+1 to strtoint(bdlen) do
begin
resultstr:=resultstr+fxstr[i];
flag:=flag+1;
if resultstr='DR' then //预备队
begin
break;
end;
if resultstr='SM' then //补给队
begin
break;
end;
end;
if (resultstr='DR') or (resultstr='SM') then
ShowMessage('第二句话动作分析处语法正确')
else
ShowMessage('第二句话动作分析处语法错误');
//职务类型的理解:
resultstr:='';
for i:=flag+1 to strtoint(bdlen) do
begin
resultstr:=resultstr+fxstr[i];
flag:=flag+1;
if resultstr='YBD' then //预备队
begin
break;
end;
if resultstr='BJD' then //补给队
begin
break;
end;
end;
if (resultstr='YBD') or (resultstr='BJD') then
ShowMessage('第二句话职务类型分析处语法正确')
else
ShowMessage('第二句话职务类型分析处语法错误');
unittype2:=resultstr;
//介词的理解:
resultstr:='';
for i:=flag+1 to strtoint(bdlen) do
begin
resultstr:=resultstr+fxstr[i];
flag:=flag+1;
if resultstr='Y' then
begin
break;
end;
if resultstr='Z' then
begin
break;
end;
end;
if (resultstr='Y') or (resultstr='Z') then
ShowMessage('第二句话介词分析处语法正确')
else
ShowMessage('第二句话介词分析处语法错误');
//地名理解:
resultstr:='';
for i:=flag+1 to strtoint(bdlen) do
begin
resultstr:=resultstr+fxstr[i];
// flag:=flag+1;
if resultstr='GD' then //预备队
begin
break;
end;
end;
if resultstr='GD' then
ShowMessage('第二句话地名分析处语法正确')
else
ShowMessage('第二句话地名分析处语法错误');
SetLength(diming,20);
diming[5].id:='GD';
diming[5].name:='高地';
diming[5].x:='52495';
diming[5].y:='62312';
if resultstr='GD' then
begin
poslong:=diming[5].x;
poslat:=diming[5].y;
end;
str:='Drawicon'+'('+unittype1+','+unittype2+','+poslong+','+poslat+')';
// str:=fxstr[3] ;
yffunction1:=str;
end;
//////////////////////////////////////////////////
/////////////////////////////////////////////////
////////////////////////////////////////////////
///////////////////////////////////////////////
////////////////////////////////////////////////
Procedure MemoReadOnly(); //使各Memo框只能读
begin
Form1.Memo1.ReadOnly:=True;
Form1.Memo2.ReadOnly:=True;
Form1.Memo3.ReadOnly:=True;
end;
Procedure MemoClear(); //清除各Memo框中的内容
begin
Form1.Memo1.text:='';
Form1.Memo2.text:='';
Form1.Memo3.text:='';
end;
var
F1: TextFile;//定义一个文本文件变量
guanjianci:TextFile;//定义一个文本文件变量用于读取关键词文档
cifastr:Array[1..60] of string; //从cifa.txt中读出关键词库中内容的字符串
t:integer;//cifastr的长度
kongge: array[1..20] of integer;//存放空格在关键词库每行中的位置
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
MemoClear();
MemoReadOnly();
OpenDialog1.Execute ;//弹出打开对话框
edit1.Text :=OpenDialog1.FileName; //显示要打开的文件名
end;
procedure TForm1.Button2Click(Sender: TObject);
var
Line:string;
begin
If length(Edit1.Text)<>0 then //输入了文件名
begin
AssignFile(F1,Edit1.Text );
Reset(F1);
Memo1.Lines.Clear ;
while not eof(F1) do //不是文件的结尾
Begin
readln(F1,line); //读取一行
Memo1.Lines.Add(Line);//把该行显示在Memo1中
end;
end
else
ShowMessage('必须输入文件名');
end;
procedure TForm1.Button3Click(Sender: TObject);
Var
i:integer;
begin
if Memo1.Modified then //如果Memo1中的内容已经修改
begin
Rewrite(f1); //创建打开文件
for i:=0 to Memo1.Lines.Count -1 do //把Memo1中的内容写到文件中去
Writeln(f1,Memo1.lines[i]);
ShowMessage('文书已经保存');
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Application.Terminate; //关闭文件
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -