Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Калькуляция строки 
:(
    Опции темы
jorka
Дата 29.1.2010, 19:46 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 25.10.2008

Репутация: нет
Всего: нет



Есть ли в делфи элемент управления который подсчитывал выражения? Например в этом элементе(с виду текстбокс) написано "3+2", а он выдаст 5 и т.д.
PM MAIL   Вверх
kami
Дата 29.1.2010, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Например, jvInterpreterProgram из комплекта JVCL. Очень мощная, но плоходокументированная штука.
Есть и проще:
foreval
PM MAIL WWW   Вверх
shmelina
Дата 30.1.2010, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 5.6.2009

Репутация: нет
Всего: нет



А можно еще самому написать. Полезно для мозгов и проще будет расширять дополняя своими функциями. Полезно еще будет почитать про обратную польскую запись.
PM MAIL   Вверх
kami
Дата 30.1.2010, 01:18 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Цитата(shmelina @  30.1.2010,  01:06 Найти цитируемый пост)
А можно еще самому написать.

а Вы пробовали?
Если да - снимаю шляпу.
Я бы просто не рискнул потратить кучу времени на разбор документации по поводу вычисления выражений, написание кода и отлов глюков. И все это только для того, чтобы внедрить потом в простенькую программу. При условии, что есть немало уже написанных компонентов такого рода, среди которых с вероятностью 99% можно найти "тот самый" - не сильно навороченный, и полностью удовлетворяющий задаче.
PM MAIL WWW   Вверх
shmelina
Дата 30.1.2010, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 5.6.2009

Репутация: нет
Всего: нет



Цитата(kami @  30.1.2010,  01:18 Найти цитируемый пост)
а Вы пробовали?

Да. Написал такой алгоритм. Страшно сначала было, но оказалось не так все сложно. Плюс добавил несколько своих функций. Одна из которых возвращает курс валюты из базы на нужную дату (результат кэшируется).
Мне почему-то не пришло в голову искать готовый, хотя исходники встречал. Хотелось самому разобраться.
Найти алгоритм можно. Но с ним придется еще долго разбираться, особенно если захочется внести изменения.

В общем конечно зависит от задачи и желания в этом разобраться.
PM MAIL   Вверх
Keeper89
Дата 30.1.2010, 05:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 9
Всего: 58



Создание подобного компонента есть еще в книге А. Григорьева.


--------------------
PM MAIL WWW   Вверх
Qu1nt
Дата 30.1.2010, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 22
Всего: 50



Код

uses
  ComObj;

function Calc(const CalcStr: string): string;
var
  v: Variant;
begin
  v := CreateOleObject('MSScriptControl.ScriptControl');
  v.Language := 'JScript';
  Result := v.Eval(CalcStr);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Self.Caption := Calc('3 + 2');
end;

PM MAIL   Вверх
Beltar
Дата 8.2.2010, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 0
Всего: 7



Цитата

а Вы пробовали?


Это работа для курсовой в инсте. У меня компонент-калькулятор на основе польской записи с поддержкой кучи ф-ий, включая среднее арифметическое от произольного числа аргументов получился где-то в 500 строк. Делал просто для вникания в компонентостроение, плюс меня виндовый калькулятор бесит.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.