![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос [D7, XP]
Loonar © (2007-05-21 17:07:00)Спасибо за помощь в предыдущем вопросе.
У меня новая проблема.
Допустим в Edit1.text записано ((12-54)*65)-65*23 (абсолютно любая арифметическая комбинация с n-числами и (n-1) операциями). Мне надо чтоб при нажатии кнопки в Edit2.text появился подсчитанный ответ.
P.S.
Не судите, пожалуйста, за глупые вопросы, я новичок.
Спасибо.
Loginov Dmitry (2007-05-21 20:33:00) [1]> Неужели нет никакой команды по проеобразованию, арифметического
> примера в понятный для 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;
iXT (2007-05-21 18:02:00) [2]Приблизительный алгоритм:
Слева ищем ")"
Если есть ищем ее "(", парсим подстроку меж (...) и заменяем на резульрат
Инатче Ищем "*" или "/"
Если есть, то читаем параметры операции, и поступаем аналогично
Далее аналогично для "+" и "-"
clickmaker (2007-05-21 17:44:00) [3]
> Неужели нет никакой команды
есть. Команда мозга рукам найти либо готовый код, пользуясь yandex.ru, google.ru, sources.ru... либо написать самому пользуясь готовыми алгоритмами ищи по словам "польская запись", "рекурсивный спуск"
Loonar (2007-05-21 17:40:00) [4]Неужели нет никакой команды по проеобразованию, арифметического примера в понятный для Delphi код...
{RASkov} (2007-05-21 17:17:00) [5]Ну здесь таймеров не напасешся....
Т.е. это не в двух словах рассказать.... Ищи в инете уже готовое...
MBo (2007-05-21 17:16:00) [6]гуглить по словам парсер, парсинг математических выражений
в библиотеке RXLib есть такой.
clickmaker (2007-05-21 17:13:00) [7]о, курсовички пошли