Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kauebranco

Como executar uma string como se fosse comando ?

Recommended Posts

Boa tarde!!!Imaginem que preciso deixar a opção do usuário criar uma fórmula .. e vou gravar isso no banco de dados ..quando trouxer essa informação preciso que o sistema execute a string .. e naum a trate como um texto normal ..existe alguma função pra isso ???ou entaum imaginem que o usuário vai escolher numa ComboBox um tipo de operação ( +, -, * ou /) e ai eu uso isso pra calcular o valor entre 2 números digitados em TextBoxs.... (naum pode ser por Select Case ... teria que ser uma função que transforme string em comando)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola...Então, até existe um modo que utiliza uma API do Windows, só que só funciona não funciona em Run Time (o porque até hoje eu não sei) .....Existe um outro modo, usando uma outra DLL do Windows que agora não lembro qual é, vou ver se acho aqui, mas acho que não funciona muito bem porque acabei não usando....Ja tive que usar algo parecido, mas infelizmente tive que quebrar a string e ir montando 'na mão' as expressoes, deu um trabalho e tanto.......

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom eu até acho que posso te ajudar. Mas não conheço nenhuma função que execute isso no vb.Cara na hora de salvar a formula voce poderia salvar mais ou menos assim(@val1@ * (@val2@ + @val3@)) / @val4@assim depois voce da um replace das variaveis nos numeros e voce poderia fazer isso procedure na base de dados.ex:no oracle:declarex nvarchar2(15);resultado number;beginx := '(2 / 6) + 8'; -- aqui vai sua formulaexecute immediate 'select ' || x || ' from dual' into resultado; dbms_output.put_line(resultado);end;acho que isso pode de dar alguma idéia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é Adriano ...Desse jeito fica mais facil mesmo. Executei a expressao no banco de dados tambem, só que no SQL, dai é só fazer por exemplo (SELECT 3 + 2 AS Resultado) que ele retornará 5 ......Mas não sei se voce conhece, tem um modo de fazer isso usando aquela dll FSO do VB .... eu não lembro agora como que usa e se realmente funciona .... sabe ???? Vou ver se consigo lembrar aqui e qualquer coisa eu posto

Compartilhar este post


Link para o post
Compartilhar em outros sites

realmente não conheço nada no vb.mas dai abre espaço para outras formas tambem, ja ouviu falar em expresão matemática fixa e pos-fixa? então, se voce converter para pos-fixa pode executar numero por numero, operador por operador, que tambem funciona, mais dai tem que lembra das aulas da facu, na net tem exemplos de como fazer, mas sinceramente, cara faz uma procedure que calcula e traz o resultado.tipo assim Select fn_CalculaFormula(tb_formula.campoFormula) from tb_formuladai você cria uma função fn_CalculaFormula baseado no exemplo que te mostrei antes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.