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

📄 dm.txt

📁 编译原理课程设计的编程部分LL(1)算法分析
💻 TXT
字号:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    DBGrid1: TDBGrid;
    Button1: TButton;
    Button2: TButton;
    DataSource1: TDataSource;
    ADOTable1: TADOTable;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    ADOCommand1: TADOCommand;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button1Click(Sender: TObject);

 var
    sleft,sright,scontent : string;
    //biaoming : string;

    flag,i,j,m,n,a,b,c,k : integer;
    temp2:array[1..20,1..10] of string;
    temp1:array[1..20] of string;
    t1,t2,temps,temp : string;

begin

  ADOCommand1.commandtext:='drop table ?¤2a·???';
  ADOCommand1.Execute;
  ADOCommand1.commandtext:='create table ?¤2a·??? ([·????á\???á·?] varchar(20))';
  ADOCommand1.Execute;

  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Text:='select selectleft,selectright,content from select?ˉo? ';
  ADOQuery1.Open;
  j:=1;
  b:=0;
  c:=0;
  ADOQuery1.First;
  while not ADOQuery1.Eof do             //2?è?áD insert lists

    begin
      flag:=1;
      a:=1;
      b:=b+1;
      temp:='';
      sright:=adoquery1.Fieldbyname('selectright').AsString;
      n:=length(sright);
      for m:=1 to n do
      begin
        temp:=copy (sright,m,1);
        if comparestr(temp,',')<>0 then
          begin
            temps:=temps+temp;
          end
        else
          begin
            temp2[b,a]:= temps;
            a:=a+1;
          end;
      end;
      ADOQuery1.Next;
    end;

    for i:=1 to 20 do
      begin
        for j:=1 to 10 do
          begin
            for k:=1 to 20 do
              begin
                t1:=temp1[k];
                t2:=temp2[i,j];
                if t1=t2 then
                  begin
                    flag:=0;
                    break;
                  end
                else
                  begin
                    flag:=1
                  end;
              end;
            if flag=1 then
              begin
                ADOCommand1.commandtext:='alter table ?¤2a·??? add '''+temp+''' varchar(20)';
                ADOCommand1.Execute;
                temp1[c]:=t2;
                c:=c+1;
              end;
          end;
      end;

  ADOQuery1.first;
  while not ADOQuery1.Eof do             //2?è?DD  insert rows

    begin
      sleft:=adoquery1.Fieldbyname('selectright').AsString;
      for k:=1 to 20 do
        begin
          t1:=temp1[k];
          t2:=sleft;
          if t1=t2 then
            begin
              flag:=0;
              break;
            end
          else
            begin
              flag:=1;
            end;
        end;
        if flag=0 then
          begin
            ADOCommand1.commandtext:='insert into ?¤2a·??? ([·????á\???á·?] varchar(20)) values '''+sleft+'''';
            ADOCommand1.Execute;
          end;
        ADOQuery1.next;
    end;

  ADOQuery1.first;
  while not ADOQuery1.Eof do             //????????·?è?êy?Y  update contest

    begin
      sleft:=adoquery1.Fieldbyname('selectleft').AsString;
      scontent:=adoquery1.Fieldbyname('content').AsString;
      sright:=adoquery1.Fieldbyname('selectright').AsString;
      ADOCommand1.CommandText:='update ?¤2a·??? set '''+sright+''' ='''+scontent+'''  where [·????á\???á·?] ='''+sleft+'''';
      ADOCommand1.Execute;
      ADOQuery1.Next;
    end;

  ADOQuery1.close;

  form1.Hide;
  form2.showmodal ;

end;

end.

⌨️ 快捷键说明

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