Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Parser / 7 сообщений из 7, страница 1 из 1
07.04.2003, 13:12
    #32134635
Posco
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Parser
Подскажите где можно найти подходяший парсер для вычисления формул.
Причём, желательно что бы он работал с БД, брал оттуда переменные и их значения. Есть ли такой?
Заранее благодарен.
...
Рейтинг: 0 / 0
07.04.2003, 15:27
    #32134817
maloi_alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Parser
Поищи поиском на torry.net , там их куча всяких лежит.
...
Рейтинг: 0 / 0
08.04.2003, 04:02
    #32135240
StarWind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Parser
мне понравился парсер который идет в составе FastReport... пользую его и радуюсь жизни... при желании к нему можно и UDF прикрутить
...
Рейтинг: 0 / 0
08.04.2003, 06:41
    #32135251
Posco
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Parser
Спасибо за помощь!
...
Рейтинг: 0 / 0
08.04.2003, 06:54
    #32135254
Posco
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Parser
2 StarWind
извиняюсь за назойливость, не мог бы кинуть экземплы по работе с Фастовским парсером.
Заранее благодарен!
...
Рейтинг: 0 / 0
08.04.2003, 10:39
    #32135423
StarWind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Parser
модуль называется 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
08.04.2003, 11:05
    #32135470
Posco
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Parser
Благодарю за помощь!
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Parser / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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