(c in ['+','-','*','/']) or (c in [':','=','(',')','.','_',';','%']) and (c <> ' ') then
s := s + c
else
Check;
end;
i := i + 1;
end;
end;
result := z;
end;
//====================================
procedure TForm1.Button1Click(Sender: TObject);
var i, j, v: Integer;
c: Char;
begin
for i := 0 to Memo1.Lines.Count - 1 do
begin
StringToWords(Memo1.Lines.Strings[i], 2, ListBox1.Items);
end;
v := 1;
for i := 0 to ListBox1.Items.Count - 1 do
for j := 0 to StringGrid2.RowCount - 1 do
begin
if ListBox1.Items.Strings[i] = StringGrid2.Cells[0,j] then
begin
StringGrid1.RowCount := StringGrid1.RowCount + 1;
StringGrid1.Cells[0,v] := IntToStr(v);
StringGrid1.Cells[1,v] := StringGrid2.Cells[0,j];
StringGrid1.Cells[2,v] := StringGrid2.Cells[1,j];
v := v + 1;
Break;
end
else if j = StringGrid2.RowCount - 1 then
begin
StringGrid1.RowCount := StringGrid1.RowCount + 1;
StringGrid1.Cells[0,v] := IntToStr(v);
StringGrid1.Cells[1,v] := ListBox1.Items.Strings[i];
c := ListBox1.Items.Strings[i][1];
if (c in ['0'..'9']) then
StringGrid1.Cells[2,v] := 'Числовое значение'
else if ((c in ['%'])) then StringGrid1.Cells[2,v] := 'Символьная константа'
else StringGrid1.Cells[2,v] := 'Переменная';
v := v + 1;
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Clear;
ListBox1.Clear;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
Edit1.Text := OpenDialog1.FileName;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if FileExists(Edit1.Text) then
Memo1.Lines.LoadFromFile(Edit1.Text)
else MessageBox(Handle, 'Файл не найден.', 'Внимание', MB_ICONINFORMATION);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if Button5.Caption = '>' then
begin
Form1.Width := 854;
Button5.Caption := '<';
end
else
begin
Form1.Width := 680;
Button5.Caption := '>';
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0,0] := '№ п/п';
StringGrid1.Cells[1,0] := 'Лексема';
StringGrid1.Cells[2,0] := 'Значение';
StringGrid2.Cells[0,0] := '+';
StringGrid2.Cells[1,0] := 'Операция сложения';
StringGrid2.Cells[0,1] := '-';
StringGrid2.Cells[1,1] := 'Операция вычитания';
StringGrid2.Cells[0,2] := '*';
StringGrid2.Cells[1,2] := 'Операция умножения';
StringGrid2.Cells[0,3] := '/';
StringGrid2.Cells[1,3] := 'Операция деления';
StringGrid2.Cells[0,4] := '(';
StringGrid2.Cells[1,4] := 'Открывающая скобка';
StringGrid2.Cells[0,5] := ')';
StringGrid2.Cells[1,5] := 'Закрывающая скобка';
StringGrid2.Cells[0,6] := ':-';
StringGrid2.Cells[1,6] := 'Операция присваивания';
StringGrid2.Cells[0,6] := ';';
StringGrid2.Cells[1,6] := 'Разделитель';
end;
procedure TForm1.Button6Click(Sender: TObject);
var i: Integer;
begin
for i := 1 to StringGrid1.RowCount - 1 do
StringGrid1.Rows[i].Clear;
StringGrid1.RowCount := 2;
end;
end.
Результат выполнения: