Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2010, 19:25   #11
designer999
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 187
По умолчанию

Stilet понял что вы имели введу, но если на кампе не стоит Excel то и функция работать не будет, или я не прав ?

исходя из того что ексель не всегда есть), как єто это реализовать в CalcExpress ?

Последний раз редактировалось Stilet; 01.10.2010 в 09:28.
designer999 вне форума Ответить с цитированием
Старый 30.09.2010, 20:30   #12
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

только для вас и только у нас
Код:
function Calculate(SMyExpression: string; digits: Byte): string;
var
   z: Char;
   ipos: Integer;

   function StrToReal(chaine: string): Real;
   var
     r: Real;
     Pos: Integer;
   begin
     Val(chaine, r, Pos);
     if Pos > 0 then Val(Copy(chaine, 1, Pos - 1), r, Pos);
     Result := r;
   end;

   function RealToStr(inreal: Extended; digits: Byte): string;
   var
     S: string;
   begin
     Str(inreal:0 : 0, S);
     realToStr := S;   
   end;   

   procedure NextChar;   
   var  
     s: string;   
   begin
     if ipos > Length(SMyExpression) then  
     begin  
       z := #9;   
       Exit;
     end  
     else
     begin
       s := Copy(SMyExpression, ipos, 1);
       z := s[1];   
       Inc(ipos);   
     end;   
     if z = ' ' then nextchar;
   end;   

   function Expression: Real;
   var
     w: Real;

     function Factor: Real;
     var  
       ws: string;
     begin
       Nextchar;   
       if z in ['0'..'9'] then
       begin  
         ws := '';
         repeat  
           ws := ws + z;
           nextchar   
         until not (z in ['0'..'9', '.']);
         Factor := StrToReal(ws);
       end  
       else if z = '(' then  
       begin
         Factor := Expression;
         nextchar   
       end
       else if z = '+' then Factor := +Factor   
       else if Z = '-' then Factor := -Factor;   
     end;
    
     function Term: Real;
     var  
       W: Real;
     begin
       W := Factor;
       while Z in ['*', '/'] do  
         if z = '*' then w := w * Factor
       else
         w := w / Factor;
       Term := w;   
     end;
   begin  
     w := term;
     while z in ['+', '-'] do
       if z = '+' then w := w + term
     else  
       w := w - term;
     Expression := w;
   end;
begin
   ipos   := 1;
   Result := RealToStr(Expression, digits);
end;
вызов
Код:
s:='1+2*5+3+(5*2+7)';
          s:=calculate(s,0);
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 30.09.2010, 21:12   #13
designer999
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 187
По умолчанию

ОЧЕНЬ БОЛЬШОЕ СПАСИБО ТЕБЕ !!!!!!!!!!
designer999 вне форума Ответить с цитированием
Старый 30.09.2010, 23:26   #14
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

http://programmersforum.ru/showthread.php?t=57287
Моя тема) Добавьть некоторые операции помоему не столь сложно будет ...
Lime вне форума Ответить с цитированием
Старый 01.10.2010, 09:29   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но если на кампе не стоит Excel то и функция работать не будет, или я не прав ?
Прав. Я в таких случаях все же ищу то что установленно, VBScript, Java, СУБД какие нить... Ну что-то же должно быть?
Я не очень доверяю компонентам для делфи в этом плане.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Действия над неизвестными korsmile Общие вопросы Delphi 3 04.09.2010 18:54
действия над многочленами nuevegramodelamor Помощь студентам 4 21.06.2010 01:31
линейные действия над векторами morgan996 Помощь студентам 4 09.01.2010 00:13
Действия над массивами hen Помощь студентам 2 06.06.2009 23:34
Pascal действия над числами werser Помощь студентам 1 13.11.2008 22:55