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

Вниз

Изменение алгоритма расчета   Найти похожие ветки 

 
sergstud ©   (2006-05-31 10:49) [0]

Надо сделать так, чтобы конечный пользователь мог изменять в
программе алгоритмы вычислений (напр. было x=z+y, а надо
x=2*z-y или что-нибудь подобное, но заранее разработчику
неизвестное)?
Помогите, кто знает.
Заранее благодарен.


 
MBo ©   (2006-05-31 11:26) [1]

Придется встроить в программу парсер арифметических выражений
В rxlib есть несложный, например


 
Леприкон ©   (2006-05-31 11:38) [2]

Как вариант - использовать MSScriptControl.
ниже пример использования, для обработки файлов
в переменную strFileName передается имя файла. Так же можно поступить и с X, Y, Z. Не пример для подражания, но пример для раздумий

function TFrmMain.ApplayVBScript(FileName : string; Code : WideString) : boolean;
{обработка файла кодом VBScript}
var iScript : Variant;
   strCode : string;
begin
 Result := false;
 try                            
   //инициализация скриптконтрол
   iScript := CreateOleObject("MSScriptControl.ScriptControl");
   iScript.SitehWnd := Handle;
   iScript.Language := "VBScript";
   iScript.Reset;

   //передаем в скрипт переменную с именем файла
   strCode := "strFileName = "" + FileName + """ + #10#13;

   //формируем код скрипта
   strCode := strCode + Code;

   //выполняем код скрипта
   iScript.AddCode(strCode);

   //уничтожаем скриптконтрол
   iScript := Unassigned;

   Result := true;
 except
   on E : Exception do
     begin
       Result := false;
       strError := E.Message + #10#13;
       strError := strError +"(" + iScript.Error.Text + ")" + #10#13;
       strError := strError + "строка: " + IntToStr(iScript.Error.Line - 2) + ", столбец: " + IntToStr(iScript.Error.Column);
     end;
 end;
end;


 
TUser ©   (2006-05-31 12:22) [3]

http://algolist.manual.ru/syntax/revpn.php
http://algolist.manual.ru/syntax/index.php



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

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

Наверх




Память: 0.47 MB
Время: 0.031 c
15-1150721661
Crazy monkey
2006-06-19 16:54
2006.07.16
Старая вещчица, но смешеая.


2-1151412468
Neket
2006-06-27 16:47
2006.07.16
И вновь DBGrid


15-1150451957
HeadHunter
2006-06-16 13:59
2006.07.16
Qulix Systems (БелХард, Минск) приглашает наработу программистов


6-1140887955
Sco
2006-02-25 20:19
2006.07.16
IP адресса


6-1141907554
Sysanin
2006-03-09 15:32
2006.07.16
Отправка сообщения удалёному компу