Текущий архив: 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.45 MB
Время: 0.043 c