Existem algumas formas de calcular expressões matemáticas, mas na maioria delas, é necessário efectuar uma série de validações, como propriedades distributivas, funções trigonométricas, etc., e a utilização de um grande número de linhas de código.
Uma forma simples de calcular uma expressão matemática, através de uma string, é usando o Microsoft Script Control, um controlo ActiveX normalmente disponível no sistema operativo, e já com alguns anos, mas que ainda pode ajudar bastante na simplificação do código.
Para utilizar este controlo, é apenas necessário adicionar uma referência ao Microsoft Script Control 1.0, no separador COM.
Depois no código é apenas necessário:
Dim ScriptEngine As New MSScriptControl.ScriptControl
ScriptEngine.Language = "VBScript"
Dim expression As String = "(10 + 154) * 300 / (40 - 4)^2"
Dim result As String = ScriptEngine.Eval(expression)
Debug.Writeline(result)
Isto irá mostrar o resultado da expressão, que neste caso é 37,962962962963
Mas podem-se usar expressões mais complexas, com funções trigonométricas incluídas. Como exemplo (expressão sem sentido):
Dim expression As String = "sin(30)*cos(9)/tan(4)*2"
Este controlo permite também efectuar outras operações, como por exemplo:
Dim msg As String = "Msgbox(""Isto é um teste ..."")"
ScriptEngine.ExecuteStatement(msg)
Mas para mais informação sobre elas, deixo aqui este link, entre muitos outros disponíveis: How To Call Functions Using the Script Control
PS: Como sempre, qualquer dúvida, comentário ou correcção ao artigo é sempre bem vinda!
3 comentários:
HELP!
tenho uma aplicação feita em vb.net, e gosta que no inicio da aplicação verificar se há updates. isto tudo localmente....... sem usar clickonce.....
Olá,
Algum problema em usar o ClickOnce ? O ClickOnce pode não ser usado pelo metodo tradicional, mas sim através das API's que disponibiliza.
No entanto tenho um artigo que mostra como fazer a actualização automática: http://vbtuga.blogspot.com/2008/03/vbnet-actualizaes-automticas-da-aplicao.html
Espero que ajude!
sim eu vi esse post. mas nesse post vai buscar á internet (ftp) a actualização e eu queria localmente.
a minha aplicação foi feita com o setup and development
Enviar um comentário