Formel wird nicht ersetze

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Madd Eye.

    Formel wird nicht ersetze

    Hallo Zusammen,
    nach langer zeit hab ich mal wieder ne frage an euch

    Ich habe folgenden Code

    VB.NET-Quellcode

    1. Public Function calc(ByVal Formel as String) as String
    2. Dim start As Integer
    3. If Formel.Contains("sqr") Then
    4. start = Formel.IndexOf("sqr")
    5. For i As Integer = start + 4 To Formel.Length - 1
    6. If Formel.Substring(i, 1) = ")" Then
    7. Dim re As String = "sqr(" + Formel.Substring(start + 4, i - start - 4) + ")"
    8. Replace(Formel, re, Math.Sqrt(Formel.Substring(start + 4, i - start - 4)))
    9. End If
    10. Next
    11. End if
    12. Return Formel
    13. End Function


    So wenn ich den String Formel dann ausgeben lasse ist er immer noch der selbe wie vorher

    Beispiel:
    Ich gebe ein: sqr(9)
    Was sollte rauskommen: 3
    was kommt raus: sqr(9)

    aber warum?

    Hoffe mir kann einer helfen

    MFG

    Madd
    Hi,

    Replace verändert den Ausgangsstring nicht, sondern liefert ein neues String-Objekt zurück, d.h. du musst neu zuweisen:

    VB.NET-Quellcode

    1. Formel=Replace(...)


    Ich würde übrigens lieber die Replace-Methode der String-Klasse verwenden...

    MfG
    Probiere es mal mit

    Quellcode

    1. Public Function calc(ByVal Formel As String) As String
    2. Dim start As Integer
    3. If Formel.Contains("sqr") Then
    4. start = Formel.IndexOf("sqr")
    5. For i As Integer = start + 4 To Formel.Length - 1
    6. If Formel.Substring(i, 1) = ")" Then
    7. Dim re As String = "sqr(" + Formel.Substring(start + 4, i - start - 4) + ")"
    8. Formel = Replace(Formel, re, Math.Sqrt(Formel.Substring(start + 4, i - start - 4)))
    9. ' Die folgende Zeile machts aus:
    10. Return Formel
    11. End If
    12. Next
    13. End If
    14. Return "Nix funden"
    15. End Function
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!