Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.10;
Скачать: CL | DM;

Вниз

Вопрос   Найти похожие ветки 

 
Loonar ©   (2007-05-21 17:07) [0]

Спасибо за помощь в предыдущем вопросе.
У меня новая проблема.
Допустим в Edit1.text записано ((12-54)*65)-65*23 (абсолютно любая арифметическая комбинация с n-числами и (n-1) операциями). Мне надо чтоб при нажатии кнопки в Edit2.text появился подсчитанный ответ.

P.S.
Не судите, пожалуйста, за глупые вопросы, я новичок.

Спасибо.


 
clickmaker ©   (2007-05-21 17:13) [1]

о, курсовички пошли


 
MBo ©   (2007-05-21 17:16) [2]

гуглить  по словам парсер, парсинг математических выражений

в библиотеке RXLib есть такой.


 
{RASkov} ©   (2007-05-21 17:17) [3]

Ну здесь таймеров не напасешся....
Т.е. это не в двух словах рассказать.... Ищи в инете уже готовое...


 
Loonar ©   (2007-05-21 17:40) [4]

Неужели нет никакой команды по проеобразованию, арифметического примера в понятный для Delphi код...


 
clickmaker ©   (2007-05-21 17:44) [5]


> Неужели нет никакой команды

есть. Команда мозга рукам найти либо готовый код, пользуясь yandex.ru, google.ru, sources.ru... либо написать самому пользуясь готовыми алгоритмами ищи по словам "польская запись", "рекурсивный спуск"


 
iXT ©   (2007-05-21 18:02) [6]

Приблизительный алгоритм:

Слева ищем ")"
Если есть ищем ее "(", парсим подстроку меж (...) и заменяем на резульрат
Инатче Ищем "*" или "/"
Если есть, то читаем параметры операции, и поступаем аналогично
Далее аналогично для "+" и "-"


 
Loginov Dmitry ©   (2007-05-21 20:33) [7]

> Неужели нет никакой команды по проеобразованию, арифметического
> примера в понятный для Delphi код...


1. Делаешь Inport Type Library для Microsoft Script Control
2. Подключаешь модуль MSScriptControl_TLB
3. Вставляешь код:


procedure TForm1.Button1Click(Sender: TObject);
var
 SC: TScriptControl;
begin
 SC := TScriptControl.Create (Self);
 try
   SC.Language:="VBScript";
   Label1.Caption := SC.Eval(Edit1.Text);
 finally
   SC.Free;
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2007.06.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
2-1179839213
_vl_
2007-05-22 17:06
2007.06.10
Перевод из строки в число


15-1178973372
>>DEATH<<
2007-05-12 16:36
2007.06.10
компоненты для MAIL.RU AGENT


1-1176617592
Major Gray
2007-04-15 10:13
2007.06.10
Нестандартная реакция TPopupMenu.


3-1174554410
elserpiente
2007-03-22 12:06
2007.06.10
просмотреть updatetime таблицы в FB


3-1174484710
Dmitry_177
2007-03-21 16:45
2007.06.10
DbiQExecDirect из BDE API (IDAPI) не выполняет SQL-запрос