Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Matte funktion efterlyses

Postades av 2009-05-12 23:12:23 - Magnus Karlsson, i forum vb.net, Tråden har 9 Kommentarer och lästs av 1476 personer


Om jag har en sträng i form av en formel.

<code>
dim myFormel as string = "( 23 + 2 ) / 23"

dim mittsvar as double = calculator( myFormel )
</code>

Finns det något färdig funktion som kan returner svaret?


Svara

Sv: Matte funktion efterlyses

Postades av 2009-05-13 08:46:06 - Niklas Jansson

Enklaste sättet: http://www.devx.com/vb2themax/Tip/18773
Annars måste du nog antingen skriva en egen parser (och det kan vara meckigt även för enklare formler) och sen interpretera, alt. borde det gå med Reflection.Emit, men jag gissar att du ändå måste skriva en parser.


Svara

Sv: Matte funktion efterlyses

Postades av 2009-05-13 09:00:32 - Lars Gottfridsson

Jag googlade lite, kanske detta kan va nåt?
En del kostar pengar och andra klarar inte paranteser, men nån bra gratis class borde du hitta.

http://www.google.se/search?hl=sv&q=parse+string+formula&meta=

Lycka till!


edit: annars om det bara rör sig om så enkla formler, så kan du väl som niklas va inne på,
skriva din egen parser. Detta borde vara ganska enkelt om jag inte glömt nåt problem.
Man får parsa fomelns komponenter efter rådande matematisk prioritetsordning.
Paranteser först, sen (* och /) för att sen summera. no?




Svara

Sv:Matte funktion efterlyses

Postades av 2009-05-13 09:38:21 - Magnus Karlsson

Får fel ...

<code>
Dim sc As New MSScriptControl.ScriptControl
</code>

Type 'MSScriptControl.ScriptControl' is not defined.


Svara

Sv:Matte funktion efterlyses

Postades av 2009-05-13 09:43:10 - Niklas Jansson

Detta kanske funkar, och verkar kunna parsa rätt hyggligt: http://www.codeproject.com/KB/dotnet/evaluator.aspx. Ser ingen större anledning att gå utanför det som ligger i .NET eller VBScript.

Att skriva en egen parser är inte så simpelt som det kanske verkar.


Svara

Sv: Matte funktion efterlyses

Postades av 2009-05-13 10:10:13 - Magnus Karlsson

La till MS Script control 1.0 och vips så funkar det.


Svara

Sv: Matte funktion efterlyses

Postades av 2009-05-13 10:21:31 - Magnus Karlsson


Vad skulle begränsningen med nedan kod vara?
Har provat lite formler och det verkar fungera.

<code>
Dim sc As New MSScriptControl.ScriptControl()
' You always need to initialize a language engine
sc.Language = "VBScript"
' this is the expression - in a real program it will probably be
' read from a textbox control
Dim expr As String = "12 + 3 * 10"
Dim res As Double = sc.Eval(expr)

' display the result
Console.WriteLine("{0} = {1}", expr, res)

</code>


Svara

Sv:Matte funktion efterlyses

Postades av 2009-05-13 10:35:16 - Niklas Jansson

Ska du bara ha enklare formler funkar det. Ska du börja blanda in variabler etc. så blir det krångligare.


Svara

Sv: Matte funktion efterlyses

Postades av 2009-05-13 13:42:40 - Lars Gottfridsson

"Att skriva en egen parser är inte så simpelt som det kanske verkar. "

Nej, inte om formlerna är långa och har flera nästlade paranteser. Då blir
det lite jobbigt att analysera....


Svara

Sv:Matte funktion efterlyses

Postades av 2009-05-13 14:27:09 - Magnus Karlsson

Så jättegrymma formler kommer jag inte att ha behov för.
Det verkar fungera fint. Tackar alla som hjälpt till med att lösa min tråd.


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 668
27 958
271 741
1 097
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies