![]() |
|
|
#1
|
||||
|
||||
![]() Решил спросить как можно соорудить калькулятор обрабатывающий задачу 3434+56-676*45 такого вида,
тобишь сразу строку даешь и подсчет, все исходники что видел типичные простые где вводишь по числу, а не ряд действий строкой. Думал насчет просмотра сначала на наличие * и /. Вырезать числа рядом с этими знаками и выполнять. Таким образом начиная от более приоритетных действий, только вопрос как можно вырезать числа рядом? |
#2
|
||||
|
||||
![]() Цитата:
Чтобы это было в хорошем тоне, советую познакомиться с регулярными выражениями, синтаксическими анализаторами, с обратной польской записью и т.д. ![]() |
#3
|
||||
|
||||
![]() рег выражениями пользовался, но они не думаю что тут помогут
|
#4
|
||||
|
||||
![]() Цитата:
|
#5
|
||||
|
||||
![]() Поищи слово "МАТЕМАТИКА" на странице. Или даже тут.
Помогаю за Спасибо ![]() |
#6
|
||||
|
||||
![]() Код:
unit Unit1; interface uses MSHTML, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, StdCtrls, ExtCtrls, OleCtrls, SHDocVw; type TFormMain = class(TForm) WebBrowser: TWebBrowser; Panel: TPanel; Edit: TEdit; Button: TButton; Memo: TMemo; procedure ButtonClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var FormMain: TFormMain; implementation {$R *.dfm} procedure TFormMain.ButtonClick(Sender: TObject); begin WebBrowser.Navigate('about:blank'); while WebBrowser.ReadyState<READYSTATE_INTERACTIVE do Application.ProcessMessages; (WebBrowser.Document as IHTMLDocument2).body.innerText:=''; (WebBrowser.Document as IHTMLDocument2).parentWindow.execScript('var r=3434+56-676*45; document.write(r);', 'javascript'); Memo.Lines.Insert(0, (WebBrowser.Document as IHTMLDocument2).body.innerText); end; end. естественно поддерживаются все математические функции. Пишу программы за еду. __________________ |
#7
|
||||
|
||||
![]() NumLock, интересное решение не подозревал о таком, спасибо сгодится, интересна лишь рациональность такого использования (через TWebBrowser)
|
#8
|
||||
|
||||
![]() Цитата:
|