Главная страница
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.046 c
2-1151236718
Gizza
2006-06-25 15:58
2006.07.16
Запуск файла


8-1137709538
Nailspb
2006-01-20 01:25
2006.07.16
Drag & Drop


2-1151673095
Vitalik__
2006-06-30 17:11
2006.07.16
приложение для интернета


3-1147618940
Express
2006-05-14 19:02
2006.07.16
Ошибка «Не удается найти строку для обновления», MySQL


2-1151661230
Footballer
2006-06-30 13:53
2006.07.16
Как перетащить файлы в Playlist