vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: An Rechenoperatoren trennen 
Autor: BernyH
Datum: 12.05.09 13:02

Hei Diamantus,

Du kannst natürlich auch externe Online-Mathe-Parser benutzen...
Mit Google läßt sich hervorragend rechnen, folgender Code funktioniert zwar, ist aber experimental.

Gruß

BernyH

Public Class Form1
 
    'benötigt wird eine Form    (Form1)
    'benötigt wird ein Button   (Button1)
    'benötigt wird eine TextBox (Textbox1) zur Eingabe der Aufgabe
    'benötigt wird eine TextBox (Textbox2) zur Anzeige des von Google geparsten 
    ' Strings
    'benötigt wird eine TextBox (Textbox3) zur Anzeige des Ergebnisses
    '
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        'GoogleMathParser-Instanz
        Dim gmp As New Cgmp(TextBox1.Text)
        'wegen Webbrowser-Complete-Load-Event, warten, bis fertig
        'Events erlauben
        Do
            If gmp.Parsed <> "" Then
                If gmp.Parsed = "ERROR" Then
                    MsgBox("String konnte nicht geparst werden...")
                    Exit Do
                Else
                    'Die von Google geparste Aufgabe mit Klammersetzung usw., 
                    ' wenn die gesehen werden soll
                    TextBox2.Text = gmp.Parsed
                    'Das Ergebnis
                    TextBox3.Text = gmp.ResultDouble.ToString
                    Exit Do
                End If
            End If
            Application.DoEvents()
        Loop
    End Sub
 
End Class
 
 
''' <summary>
''' GoogleMathParser
''' </summary>
''' <remarks></remarks>
Public Class Cgmp
 
    Private WithEvents _webBrowser As New WebBrowser
    Private _strParsed As String = String.Empty
    Private _dblResult As Double = 0
 
    ''' <summary>
    ''' New
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub New()
 
    End Sub
 
 
    ''' <summary>
    ''' Aufgabe übergeben
    ''' </summary>
    ''' <param name="Aufgabe"></param>
    ''' <remarks></remarks>
    Public Sub New(ByVal Aufgabe As String)
 
        ToParse(Aufgabe)
 
    End Sub
 
 
    ''' <summary>
    ''' Zu errechnende Aufgabe
    ''' </summary>
    ''' <param name="s"></param>
    ''' <remarks></remarks>
    Public Sub ToParse(ByVal s As String)
 
        '
        s = s.Replace("+", "%2B")
        s = s.Replace("/", "%2F")
        '
        _webBrowser.Navigate( _
          "http://www.google.de/search?hl=de&num=100&newwindow=1&q=" & s.Trim)
 
    End Sub
 
    Public Property Parsed() As String
        Get
            Return _strParsed
        End Get
        Set(ByVal value As String)
            _strParsed = value
        End Set
    End Property
 
 
    Public Function ResultDouble() As Double
        Return _dblResult
    End Function
 
 
    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, _
      ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) _
      Handles _webBrowser.DocumentCompleted
 
        Dim webseite As String = _webBrowser.DocumentText
 
        'alle unerwünschten Tags entfernen
        webseite = webseite.Replace("<", "")
        webseite = webseite.Replace(">", "")
        webseite = webseite.Replace(" ", "")
        webseite = webseite.Replace(Chr(34), "")
        webseite = webseite.Replace("/font", "")
        webseite = webseite.Replace("2fontsize=-", "")
 
        'Position der Aufgabe suchen
 
        Try
            Dim pattern As String = "font-size:138%b"
            Dim anfang As Integer = webseite.IndexOf(pattern) + pattern.Length
            Dim ende As Integer = webseite.IndexOf("/b", anfang)
            Dim erg As Integer = webseite.Substring(anfang, ende - _
              anfang).IndexOf("=")
            _dblResult = CDbl(webseite.Substring(anfang, ende - _
            anfang).Substring(erg + 1).Replace(".", ","))
            Parsed = webseite.Substring(anfang, erg)
        Catch ex As Exception
            Parsed = "ERROR"
        End Try
 
    End Sub
 
 
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
An Rechenoperatoren trennen1.180Diamantus11.05.09 18:10
Re: An Rechenoperatoren trennen749ModeratorDieter11.05.09 18:11
Re: An Rechenoperatoren trennen704BernyH12.05.09 13:02
Re: An Rechenoperatoren trennen700keco12.05.09 18:45
Re: An Rechenoperatoren trennen669BernyH13.05.09 08:44
Re: An Rechenoperatoren trennen667keco13.05.09 13:59
Re: An Rechenoperatoren trennen661BernyH13.05.09 14:15
Re: An Rechenoperatoren trennen622keco13.05.09 14:18
Re: An Rechenoperatoren trennen616Maas13.05.09 16:19
Re: An Rechenoperatoren trennen675ModeratorFZelle13.05.09 16:59

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel