powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Parser
7 сообщений из 7, страница 1 из 1
Parser
    #32134635
Posco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите где можно найти подходяший парсер для вычисления формул.
Причём, желательно что бы он работал с БД, брал оттуда переменные и их значения. Есть ли такой?
Заранее благодарен.
...
Рейтинг: 0 / 0
Parser
    #32134817
Фотография maloi_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поищи поиском на torry.net , там их куча всяких лежит.
...
Рейтинг: 0 / 0
Parser
    #32135240
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне понравился парсер который идет в составе FastReport... пользую его и радуюсь жизни... при желании к нему можно и UDF прикрутить
...
Рейтинг: 0 / 0
Parser
    #32135251
Posco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за помощь!
...
Рейтинг: 0 / 0
Parser
    #32135254
Posco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 StarWind
извиняюсь за назойливость, не мог бы кинуть экземплы по работе с Фастовским парсером.
Заранее благодарен!
...
Рейтинг: 0 / 0
Parser
    #32135423
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модуль называется fr_pars

а текст простого использования...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
unit main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,FR_Pars,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    procedure GetValue(const s: String; var v: Variant);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.GetValue(const s: String; var v: Variant);
begin
 if s = 'A' then v :=  9 ;
 if s = 'B' then v :=  15 ;
end;

procedure TForm1.Button1Click(Sender: TObject);
var Pr :TfrParser;
    cl :TclParser;
    str:string;
begin
 Pr:=TfrParser.Create; str:='(a*9) - (b/15)';
 Label2.Caption:=Pr.Str2OPZ(str); // преобразуем в обратную польскую запись (удобно при многократном вызове, не тратится время на разбор формулы)
 Pr.OnGetValue:=GetValue; // выставляем обработчик события для загрузки переменных нужным значением
 Label1.Caption:=Pr.calc(str); // расчитываем значение и выводим результат
// существует функция CalcOPZ которая расчитывает исходя из обратной польской записи
end;

end.


это просто тестовый модулек, а коем я проверял как работать с парсером. Вместо обычных операций можно применять и логические в виде or, and, not
...
Рейтинг: 0 / 0
Parser
    #32135470
Posco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Благодарю за помощь!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Parser
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]