Fórum Executar Formula #357341
18/04/2008
0
Ai eu vou substituir o valor V por algo exemplo 2,10
Ai estou precisando de alguma função que execute 10 * 2,10 + 100
Que vai dar 121
Existe alguma função que faça isso?
Rudá
Curtir tópico
+ 0Posts
18/04/2008
Paulo
Gostei + 0
18/04/2008
Cesar_gualberto
Existe um componente chamado ´JvInterpreterProgram´ que pertence a JVCL.
A JVCL tem diversos componentes totalmente gratuitos. Eles podem ser baixados
aqui: http://jvcl.sourceforge.net
Abaixo temos um exemplo de uma string repassada para o interpretador que calcula o resultado.
procedure TForm1.Button1Click(Sender: TObject);
begin
JvInterpreterProgram1.Pas.Text := ´10 * 2.10 + 100´;
JvInterpreterProgram1.Run;
ShowMessage(JvInterpreterProgram1.VResult);
end;
Gostei + 0
18/04/2008
Rudá
É isso mesmo que eu queria.
Muito obrigado por sua ajuda.
Gostei + 0
19/04/2008
Marco Salles
var posIni,PosFim:integer; s:string; v,r,a,b,c:double; begin s:=´10 * V + 100´; v:=2.1; s:=StringReplace(S,´V´,floattostr(v), [rfReplaceAll]); posIni:=pos(´*´,s); a:=strtofloat(trim(copy(S,1,posini-1))); posFim:=Pos(´+´,s); c:=StrtoFloat(trim(copy(s,posfim+1,length(s)-posFim))); r:=a*v+c; showmessage(floattostr(r)); end;
ps : [b:40491c6434]note que o resultado ´r´ é um double[/b:40491c6434]
[u:40491c6434]o excesso de variávei é somente para tornar mais didático...[/u:40491c6434]
Gostei + 0
19/04/2008
Rudá
Mas não é sempre a mesma formula
Pode existir no banco de dados mais de 1000 tipo diferentes de formulas.
Gostei + 0
19/04/2008
Marco Salles
eu pensei que fosse somente uma unica formula , ande o parametro a ser alterado seria o ´V´ ...
da para fazer , mas da um trabalho e tanto . Alem do mais o problema ja foi solucionado
então vamos deixar como esta beleza...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)